hayg11
小狐狸
小狐狸
  • UID49841
  • 注册日期2015-04-27
  • 最后登录2015-04-27
  • 发帖数4
  • 经验5枚
  • 威望0点
  • 贡献值6点
  • 好评度0点
阅读:1509回复:7

看看这个脚本有啥问题,咋不起作用昵?

楼主#
更多 发布于:2015-04-27 18:26
为了屏蔽163首页引用ipservice.163.com,一打开这个网址就死了.
油猴脚本如下:
// ==UserScript==
// @name        163
// @namespace   localhost
// @include
http://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;};
meat
火狐狸
火狐狸
  • UID35020
  • 注册日期2011-01-06
  • 最后登录2024-04-29
  • 发帖数267
  • 经验200枚
  • 威望0点
  • 贡献值106点
  • 好评度16点
1楼#
发布于:2015-04-27 20:49
。这能用就有鬼啦

第一个,写法是
document.addEventListener("a",remove163Ad,false)
你括号内的写错,false拼错。

而这个remove函数写法也有问题。

最后,后面的houseTopFocusLocation是什么作用的
hayg11
小狐狸
小狐狸
  • UID49841
  • 注册日期2015-04-27
  • 最后登录2015-04-27
  • 发帖数4
  • 经验5枚
  • 威望0点
  • 贡献值6点
  • 好评度0点
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这类软件,过滤内容太多
meat
火狐狸
火狐狸
  • UID35020
  • 注册日期2011-01-06
  • 最后登录2024-04-29
  • 发帖数267
  • 经验200枚
  • 威望0点
  • 贡献值106点
  • 好评度16点
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这行也不能缺。
hayg11
小狐狸
小狐狸
  • UID49841
  • 注册日期2015-04-27
  • 最后登录2015-04-27
  • 发帖数4
  • 经验5枚
  • 威望0点
  • 贡献值6点
  • 好评度0点
4楼#
发布于:2015-04-27 22:02
还是卡在ipservice.163.com
meat
火狐狸
火狐狸
  • UID35020
  • 注册日期2011-01-06
  • 最后登录2024-04-29
  • 发帖数267
  • 经验200枚
  • 威望0点
  • 贡献值106点
  • 好评度16点
5楼#
发布于:2015-04-27 22:39
没办法,你说的太不清楚了,而我打开163的首页过程是没有任何包含 ipservice 的连接
hayg11
小狐狸
小狐狸
  • UID49841
  • 注册日期2015-04-27
  • 最后登录2015-04-27
  • 发帖数4
  • 经验5枚
  • 威望0点
  • 贡献值6点
  • 好评度0点
6楼#
发布于:2015-04-27 22:54
163.txt我把源码截取下来
taoww
非常火狐
非常火狐
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2024-05-21
  • 发帖数637
  • 经验583枚
  • 威望0点
  • 贡献值110点
  • 好评度106点
7楼#
发布于:2015-04-28 17:51
其实你可以用web开发者工具中的网络工具,看对ipservice.163.com请求的具体耗时是在哪个阶段。处理beforescriptexecute事件只能解决脚本本身运行耗时的问题,对于dns解析或者等待接收阶段的耗时是无能为力的
其实最简单的方法是在hosts文件里将ipservice.163.com解析为127.0.0.1,或者安装noscript之类的扩展拦截对ipservice.163.com的请求
游客

返回顶部