javascript - chrome扩展中如何实现阻止页面js的主动刷新
高洛峰
高洛峰 2017-04-10 14:37:43
[JavaScript讨论组]

RT 发现页面代码:

setInterval(function() {
  window.location.href='page.html'
}, 1000)

无限的去刷新,请问如何在扩展里面阻止

引申出来的问题: chrome extension 中插入了js ,"js": ["js/jquery-2.1.1.min.js",
"js/content.js"] 神奇的又发现 content.js中: console.log($.fn.jquery) // => 2.1.1 说好的 2.1.1-rc2 呢? 结果发现页面中报错 "javascript var jq = $ // $.customfunction() // 第一次调用正常 console.log( $.fn.jquery ) // => true
1.11.1 //这个是页面jquery的版本号 setTimeout(function() { // $.customfunction() // 第二次报错 $.customfunction() is not a function
console.log( $.fn.jquery ) // => false 2.1.1-rc2 // 这里为啥会影响页面的$ ? },
1000)

" 对于这个现象,已经醉了。 对于chrome extension 里面的content.js和本地page.js之间的相互关系是什么?
不是应该完全在2个隔离的js作用域之中吗? 如果可以互相访问,扩展中究竟应该如何影响页面中的js 作用域(这里的$是如何被改变的?)?

发现是插件中再次给页面引入了 jquery 2.1.1-rc2 导致的问题。。。 - -! 看来还是只有最初的问题。这里说明一下。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
黄舟

比较暴力的方法.....如果页面没有其他地方用到 setInterval 的话,使用content-scirpt 往页面写入一个 script标签,里面的内容是 setInterval= function(){};,当然你的注入时机得是domstart

黄舟

可以使用 @zqbright 的办法,把 setInterval 改为

setInterval = function() {
    console.trace()
}

这样就可以从控制台看到是哪里在调用 setInterval,然后把相应的插件给禁掉。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号