7

我的网页 html 代码中有这个 js 函数。

function update() {
    document.getElementById( "textbox ").value = updatetext;
}

当我从 chrome 控制台执行“update()”时,它可以工作。
但是如果我从 chrome 扩展执行,

chrome.tabs.executeScript(tab.id, {code: "update();"}, function(result){});

它说更新未定义。但是如果我用“alert('ok')”代替,它就可以了。
然后我执行

eval("update()")

在 Chrome 扩展内容脚本中。它还说“未定义更新”。

那么我该怎么做才能在网页上调用js函数呢?

4

1 回答 1

7

Chrome 在沙箱中执行内容脚本,因此您需要注入内联脚本来与网页交互:

var injectedCode = 'update()';
var script = document.createElement('script');
script.appendChild(document.createTextNode('('+ injectedCode +')();'));
(document.body || document.head || document.documentElement).appendChild(script);
于 2013-03-20T08:46:35.560 回答