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 导致的问题。。。 - -! 看来还是只有最初的问题。这里说明一下。

chrome web前端开发 chrome-extension JavaScript

pep525 10 years, 2 months ago

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


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

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

新世界的卡米 answered 10 years, 2 months ago

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

音无♂小命 answered 10 years, 2 months ago

Your Answer