隐藏某网站弹出的提示信息,而且不影响正常的提示

我就不说是什么网站了

万一网站管理员发现了这个问题,屏蔽了这个方法,那我不就是白忙活了。

反正是公司的需要,领导不想交钱。

发现一个简单的Chrome扩展也不是太难写

借着这个机会,了解了一下Chrome扩展该怎么开发。

参考的文档360翻译的开发文档(可能不全)Chrome官方英文开发文档

我就不介绍那个网站的背景了,我只是记录一下Chrome扩展程序怎么开发。

只用到了两个文件manifest.jsoncontent-script.js

最主要的文件是manifest.json,我是下载的模板文件,只修改了一下下面这些内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"manifest_version": 2,
"name": "appname",
"version": "1.0.0",
"description": "app description",
"icons":
{
"16": "img/logo.png",
"48": "img/logo.png",
"128": "img/logo.png"
},
...
"content_scripts":
[
{
"matches": ["*://*.domain.com/*"],
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
"css": ["css/custom.css"],
"run_at": "document_start"
}
],
"homepage_url": "http://www.ywmt.bid/Blog"
//其他的可以删除
...
}

jquery是网上下载的,然后就是另一个主要的文件content-script.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
document.addEventListener('DOMContentLoaded', function()
{
document.onreadystatechange = function(){
$('#imMsgBox').hide();
$('#overlayDiv').hide();
var obj = $("#imMsgBox").find("#imMsgBoxEnterBut");
obj.hide();
var btn_close = '<a id="imMsgClose" href="javascript:void(0);" class="btn orangeBtn twoBtn">我知道了</a>';
obj.parent().append(btn_close);
$("#imMsgClose").click( () => {
window.location.href = window.location.href;
});
}
});

最初的版本,只有$('#imMsgBox').remove()$('#overlayDiv').remove();,这样确实可以不显示提示框,但是正常的提示也无法显示了,于是才修改成了上面的版本。

有这几行就足够了。问题成功解决。

建议删除重写Chrome指定页面的字段

manifest.json文件中,建议删除"chrome_url_overrides"字段,这个字段会替换Chrome默认的页面,如果没有特殊需要,建议是删除的。

网上下载的模板,有的可能默认的是修改了新标签页的,当你发现这个问题后,删除了这个字段,即使在Chrome更新,也不会立即替换成默认的,这个可能是系统缓存的问题,只要修改路径,重新加载扩展程序就可以了。