Javascript Chrome扩展-执行前修改脚本

Javascript Chrome扩展-执行前修改脚本,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我对chrome扩展有些陌生,我正在尝试在脚本执行之前修改它 例如: <script type="text/javascript"> function() { var count = 10; countDown = setInterval(function() { if(count == 0) { // do Stuff } count--;

我对chrome扩展有些陌生,我正在尝试在脚本执行之前修改它

例如:

<script type="text/javascript">
    function() {
        var count = 10;
        countDown = setInterval(function() {
            if(count == 0) {
                // do Stuff
            }
            count--;
        }, 1000);
    }
</script>

函数(){
var计数=10;
倒计时=设置间隔(函数(){
如果(计数=0){
//做事
}
计数--;
}, 1000);
}
我的目标是从站点中删除这个脚本(在执行之前)并注入我自己的脚本(我已经完成了注入部分),或者修改它(例如,将count设置为20,这样需要20秒)

我已经尝试了很多东西,但就是找不到好的方法


希望你能帮助我:)

在飞行中劫持这一部分是相当困难的,但至少你可以停止计时器

你所需要做的就是打电话

clearInterval(countDown);
。在正确的上下文中。

在这一点上,这一概念开始发挥作用

扩展中唯一可以与网页交互的部分是内容脚本。但是,内容脚本存在于一个单独的上下文中:

内容脚本在称为隔离世界的特殊环境中执行。它们可以访问所注入页面的DOM,但不能访问页面创建的任何JavaScript变量或函数。对于每个内容脚本,它看起来就像在其运行的页面上没有其他JavaScript执行一样。反过来也是如此:页面上运行的JavaScript不能调用任何函数或访问内容脚本定义的任何变量

但是您需要访问页面的JavaScript。有一种方法,通过:


使用getElementsByTagName获取所有脚本并检查哪个脚本是正确的(有效),然后使用.parentNode.removeChild.can将count作为函数的参数传递吗?脚本在HTML页面中,如果立即执行,我不知道我能做到这一点(我的javascript知识也有点有限)最好的办法是停止脚本的执行,然后我可以使用我自己的脚本。这是你的HTML脚本吗?因为你可以使用记事本++或括号。不,脚本在网站上,当我加载该网站时,我想用我自己的脚本覆盖已经给定的脚本
var script = document.createElement('script');
script.textContent = "clearInterval(countDown);";
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);