ホームページ  >  記事  >  ウェブフロントエンド  >  Chrome.tabs.executeScript() を使用して、挿入されたコンテンツ スクリプトにパラメータを渡す方法

Chrome.tabs.executeScript() を使用して、挿入されたコンテンツ スクリプトにパラメータを渡す方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-28 18:09:29135ブラウズ

How to Pass Parameters to Injected Content Scripts with Chrome.tabs.executeScript()?

Chrome.tabs.executeScript() を使用して、挿入されたコンテンツ スクリプトにパラメータを渡す

chrome.tabs.executeScript() メソッドを使用すると、 JavaScript ファイルをタブのコンテンツに挿入します。ただし、挿入されたスクリプトにパラメータを渡す直接的な手段は提供されません。

方法 1: 実行前にパラメータを設定する

1 つのアプローチには、chrome.tabs のネストが含まれます。 JavaScript ファイルを実行する前に、executeScript() を呼び出して変数を定義します。

chrome.tabs.executeScript(tab.id, {code: 'var config = 1;'}, function() {
    chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});

複雑な変数は、JSON.stringify を使用して文字列に変換できます。

var config = {somebigobject: 'complicated value'};
chrome.tabs.executeScript(tab.id, {
    code: 'var config = ' + JSON.stringify(config)
}, function() {
    chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});

コンテンツ スクリプト (content. js):

alert('Example:' + config);

方法 2: 実行後にパラメータを設定する

または、メッセージ受け渡し API を使用して JavaScript ファイルの実行後にパラメータを渡すこともできます:

chrome.tabs.executeScript(tab.id, {file: 'content.js'}, function() {
    chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
});

content.js 内:

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    // Handle message: message === 'whatever value; String, object, whatever'
});

以上がChrome.tabs.executeScript() を使用して、挿入されたコンテンツ スクリプトにパラメータを渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。