0

JavaScript コード「ブックマークレット」を実行しようとしていますが、実行できませんでした。誰か実行方法を知っていますか?

background.js

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(tab.id, {file: "sc-dl.js"})
});

var executeScript = function(info, tab){
    chrome.tabs.executeScript(null, {file:"sc-dl.js"});
}
var Test2 = {"title": "Test2", "contexts":["page"], "parentId":menu,"onclick":executeScript};
chrome.contextMenus.create(Test2);

マニフェスト.json

"background": {"scripts": ["background.js"]},
"web_accessible_resources": ["sc-dl.js"],
"permissions": ["contextMenus","tabs","http://*/*","https://*/*"],

これは、 「ContextMenu」または「browserAction」から実行するファイルです。

4

1 に答える 1

0

注入しようとしているコードを見ると、それが単純な JS ではなく、他のライブラリがたくさん必要であることがわかります。

最初にすべてを挿入することもできますが、これがブックマークレットであることを考えると、おそらく特定のページのコンテキストで実行されることを意図していたのでしょう。

Chrome のコンテンツ スクリプトは分離されたコンテキストで動作するため、代わりにページのコンテキストへの挿入を試みる必要があります。すべてのライブラリがすでにロードされている場合は、機能するはずです。

于 2014-05-10T11:17:15.693 に答える