saber酱的抱枕

努力变强

07/4
09:47
学习 软件

Chrome 扩展修改 referer 实现跨域

通过 chrome.webRequest.onBeforeSendHeaders 事件来设置 referer,来达到跨域的目的。

1. 在 manifest.json 中声明权限

"permissions": [
    "tabs", "downloads", "webRequest", "webRequestBlocking", "*://www.pixiv.net/*", "*://www.pixivision.net/*", "*://i.pximg.net/*"
]

webRequest、webRequestBlocking 是必须的;后面的网址列表表示这个扩展的生效范围。

在做跨域的时候,需要把你的目标网址也添加进去。比如你的扩展运行在 a.com,去请求 b.com 的内容,那么这两个网址都要写进去。
Read More →

Chrome 扩展修改 referer 实现跨域

03/9
06:29
软件

获取 Chrome 浏览器的版本号

刚才需要获取 Chrome 浏览器的版本号,写了个代码如下:

let agent = navigator.userAgent;
if (agent.indexOf('Chrome') > 0) {
	let chrome_ver = parseInt(agent.match(/[\d.]+/gi)[5]);
	console.log(chrome_ver);
}

此代码在 Windows 上的 Chrome 64 以及 Android 上的 Chrome 61 里测试通过。

不过如果以后时间长了,再用的话就要先验证一下对不对了。

获取 Chrome 浏览器的版本号

04/14
10:41
学习

制作chrome扩展的一些经验

Chrome-Extensions chrome扩展

本文略微记录一下开发chrome扩展的经验,免得以后用到了还要再去查一遍文档。注意这不是教程,只是一点人生的经验……教程可以参考这里

1.文件结构:

在扩展的根目录必须有个manifest.json文件,这个文件很重要,参数可以去文档里看。

其他的所有文件可以放在根目录,也可以建立文件夹存放。
扩展的图标可以用jpg或者png格式;官方建议是不要把图标占满画布,而是在四周留下一点空白。
一般我们需要一个在后台默默运行的js,通常叫做background.js,它能使用所有chrome扩展的API。
通常我们也需要有一个在前台运行的js,可以叫做content.js。这个js会被加载进前台页面执行,它只能使用很少的chrome扩展的API。而且它通常只能访问dom结构,不能直接使用页面上定义的函数。
如果需要也可以建立一个活动页面,一般叫做popup.html。
如果需要也可以建立一个选项页面,一般叫做options.html。
以上这些都需要在manifest.json里定义。
其他的文件可以自行发挥,比如html文件、css文件、图片等,有需要就可以建立,然后自行调用即可。

在background的参数里设置"persistent": false可将扩展作为event page,可以减少一些内存占用。
Read More →

制作chrome扩展的一些经验

04/8
15:27
学习

使用a标签的download属性让浏览器下载文件

html5对a标签新增了download属性用于下载文件,简单的理解是a标签如果添加了download属性,那么点击它的时候就不会跳转,而是会触发浏览器下载文件。如:

 a chrome download firefox html html5 兼容性 浏览器

浏览器兼容性

 a chrome download firefox html html5 兼容性 浏览器

但firefox有点麻烦,它有同源限制,如果href里的url和当前页面的url不是同源就不能下载。

 a chrome download firefox html html5 兼容性 浏览器

其他几大浏览器都没这限制(Edge、Chrome、Opera)。

另外firefox在由download属性触发下载时,可能会提示处理方式:

 a chrome download firefox html html5 兼容性 浏览器

这好像是firefox下载文件时特有的提示,chrome没这个提示。

实际上firefox麻烦事还挺多,参见本文结尾的dwmo。


其他资料:

MDN文档

测试demo

使用a标签的download属性让浏览器下载文件

04/6
08:00
学习

开发chrome扩展的一些参考资料

1.google官方文档
API目录页

2.谷歌开发文档的非官方中文版

3.360极速浏览器的官方开发文档
翻译成了中文,挺不错,但是很久没更新,显得落伍了。

4书籍《Chrome扩展及应用开发》,我们可以在图灵社区免费阅读。这本书很不错。
这本书还有第二版,修订和增加了一些内容,不过不提供全部免费阅读。图灵社区页面

开发chrome扩展的一些参考资料

02/23
08:00
软件

chorme中如何单独删除地址栏下拉框的提示

当我们在chrome的地址栏中输入内容的时候,chrome会在历史记录、书签里寻找匹配的内容并加以提示。

chorme中如何单独删除地址栏下拉框的提示

如上图,我只输入了“saber”,chrome便显示出了我访问过的一系列网址,如“www.saber.我爱你”、“www.saber.love”等。

但是我博客域名现在只用“saber.love”了,如何去掉这些已经不再需要的提示呢?其实这是有快捷键的,首先用键盘的方向键选中要删除的记录,然后按下快捷键来删除这条记录:

Windows:按 Shift + Delete
Mac:按 Shift + fn + Delete
Chromebook:按 Alt + Shift + Backspace

注意,下拉提示里的书签(前面显示为五角星图标)是不能这样删除的,还是去书签管理器中删除吧。

官方文档:《移除特定的联想查询》

chorme中如何单独删除地址栏下拉框的提示

02/16
16:25
软件

我又感受到了谷人希的魅力

刚才修改一个网站,原本的网页编码是gb2312的,我使用一个编码转换器转换成utf-8时出了点问题,编码变成了这样:

<meta http-equiv="Content-Type" content="text/html"; charset=utf-8"gb2312" />

我直到修改完都没发现问题,后来同事的360浏览器上和搜狗浏览器上网页都是乱码,我才发现了这个问题。

看来chrome的容错能力也是非常强大啊。

我又感受到了谷人希的魅力