chrome扩展中如何实现阻止页面js的主动刷新
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 导致的问题。。。 - -! 看来还是只有最初的问题。这里说明一下。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
比较暴力的方法.....如果页面没有其他地方用到 setInterval 的话,使用content-scirpt 往页面写入一个 script标签,里面的内容是 setInterval= function(){};,当然你的注入时机得是domstart
可以使用 @zqbright 的办法,把 setInterval 改为
这样就可以从控制台看到是哪里在调用
setInterval
,然后把相应的插件给禁掉。