Google Chrome用户脚本无法正常运行

时间:2011-04-03 15:10:50

标签: javascript google-chrome userscripts

我为Google Chrome写了一个小用户。它工作得很好,直到我调用一个函数initTimer()我的脚本中没有这样的函数,但它在我的用户脚本运行的页面中的脚本中,但无论如何都有错误initTimer() is not defined 。我曾尝试撰写window.initTimer(),但却说Object [object DOMWindow] has no method 'initTimer'。那么我怎样才能使它发挥作用呢? 提前致谢

1 个答案:

答案 0 :(得分:2)

由于用户脚本通常是从浏览器环境的其余部分沙箱化的,因此出于安全原因,用户脚本无法与页面本身上运行的脚本进行交互,也无法在页面上运行的脚本与用户脚本进行交互。

您必须通过在页面本身中创建包含您要执行的代码的script元素来为此执行脚本注入。

var s = document.createElement('script');
s.innerHTML = 'initTimer();';
document.body.appendChild(s);

这可能会或可能不会破坏您的脚本的问题是注入的代码无法直接与沙箱中的代码通信,因此您必须注入 all