从chrome扩展内容脚本执行网页js

时间:2013-03-20 07:40:28

标签: javascript google-chrome google-chrome-extension

我的网页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函数呢?

1 个答案:

答案 0 :(得分:7)

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

var injectedCode = 'update()';
var script = document.createElement('script');
script.appendChild(document.createTextNode('('+ injectedCode +')();'));
(document.body || document.head || document.documentElement).appendChild(script);