阅读:1834回复:7
看看这个脚本有啥问题,咋不起作用昵?
为了屏蔽163首页引用ipservice.163.com,一打开这个网址就死了.
油猴脚本如下: // ==UserScript== // @name 163 // @namespace localhost // @includehttp://www.163.com/ // @version 1 // ==/UserScript== document.addEventListener("beforescriptexecute", funtion,flase) remove163Ad(); function remove163Ad() { var scris = document.getElementsByTagName('scripts'); for (i = 0; i < scris.length; i++) { var src = scris.src; if (src.search('http://ipservice.163.com/ipquery') == 0) { scris.parentNode.removeChild(scris); break; } } } unsafeWindow.houseTopFocusLocation = function () {return false;}; |
|
1楼#
发布于:2015-04-27 20:49
。这能用就有鬼啦
![]() 第一个,写法是 document.addEventListener("a",remove163Ad,false) 你括号内的写错,false拼错。 而这个remove函数写法也有问题。 最后,后面的houseTopFocusLocation是什么作用的 |
|
2楼#
发布于:2015-04-27 21:14
多谢执教,我是生手,你能帮我写这段代码吗?我的意图是:打开www.163.com,在网页源码中搜寻ipservice.163.com字段,共有两个script段涉及这个字段,我想把这两个script删掉,这样打开www.163.com就不会访问ipservice.163.com了,这个网址在我这打不开呀,害得一打开163就憋在ipservice.163.com不动了.我不想用adblock这类软件,过滤内容太多
|
|
3楼#
发布于:2015-04-27 21:22
//@run-at document-start window.addEventListener('beforescriptexecute', function(e) { src = e.target.src; if (src && src.indexOf('ipservice.163.com') != -1) { // window.removeEventListener(e.type, arguments.callee, true); e.preventDefault(); e.stopPropagation(); }; }, true);还有run-at document-start这行也不能缺。 |
|
4楼#
发布于:2015-04-27 22:02
还是卡在ipservice.163.com
|
|
5楼#
发布于:2015-04-27 22:39
没办法,你说的太不清楚了,而我打开163的首页过程是没有任何包含 ipservice 的连接
|
|
6楼#
发布于:2015-04-27 22:54
163.txt我把源码截取下来
|
|
7楼#
发布于:2015-04-28 17:51
其实你可以用web开发者工具中的网络工具,看对ipservice.163.com请求的具体耗时是在哪个阶段。处理beforescriptexecute事件只能解决脚本本身运行耗时的问题,对于dns解析或者等待接收阶段的耗时是无能为力的
其实最简单的方法是在hosts文件里将ipservice.163.com解析为127.0.0.1,或者安装noscript之类的扩展拦截对ipservice.163.com的请求 |
|