7

このjs関数は私のWebページのhtmlコードにあります。

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

Chromeコンソールから「update()」を実行すると動作します。
しかし、Chrome拡張機能から実行すると、

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

更新が定義されていないと表示されます。しかし、「alert('ok')」に置き換えると機能します。
それから私は実行します

eval("update()")

Chrome拡張機能のコンテンツスクリプト。また、「更新が定義されていません」と表示されます。

では、Webページで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 に答える