利用onBeforeRequest和快照实现更便利的快照访问插件

举报
Amrf 发表于 2019/11/28 19:14:27 2019/11/28
【摘要】 场景是这样的,google快照在企业内网白名单,但是要浏览的页面的域不在白名单内,并且需要访问的页面主要是静态文本内容并且拥有搜索快照;这个时候如果是单页面,我们也没什么,但是如果快照内还有相关的兄弟链接我们希望点击访问,这个时候正常还是不能直接访问,需要人为添加https://webcache.googleusercontent.com/search?q=cache:前缀继续访问(参考:h...

场景是这样的,google快照在企业内网白名单,但是要浏览的页面的域不在白名单内,并且需要访问的页面主要是静态文本内容并且拥有搜索快照;

这个时候如果是单页面,我们也没什么,但是如果快照内还有相关的兄弟链接我们希望点击访问,这个时候正常还是不能直接访问,需要人为添加https://webcache.googleusercontent.com/search?q=cache:前缀继续访问(参考:https://stackoverflow.com/questions/4560400/how-can-i-get-the-google-cache-age-of-any-url-or-web-page)

而我们可以注意到这种场景下同一页面中的兄弟节点一般都是同一个网站域下面的,也就是具有相似特征的;这个时候我们就可以利用chrome.webRequest.onBeforeRequest对所有请求进行捕捉并进行重定向;

举个例子假设我需要用快照方式访问https://chai2010.cn/advanced-go-programming-book/ch1-basic/ch1-01-genesis.html这个链接

相关插件代码如下:

chrome.webRequest.onBeforeRequest.addListener(
    function(details) {
	     var rUrl = "";
	     if(details.url.indexOf('chai2010')!=-1){
		    rUrl = "https://webcache.googleusercontent.com/search?q=cache:"+details.url.replace('http://','');
	     }
         return {    
	         redirectUrl: rUrl
	     };
    },
    {
        urls: [
            "*://chai2010.cn/*",
            "*://chai2010.gitbooks.io/*"
        ],
        types: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"]
    },
    ["blocking"]
);

重新加载插件后我们再次点击上面那个链接就会自动跳到快照地址,点击Nav中的其他链接也会自动跳到快照地址;

当有其他不在白名单但有快照的域时也可以按照上面的规则继续添加;

感觉挺方便的,共享给各位;

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。