Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menghantar Parameter ke Skrip Kandungan yang Disuntik dengan Chrome.tabs.executeScript()?

Bagaimana untuk Menghantar Parameter ke Skrip Kandungan yang Disuntik dengan Chrome.tabs.executeScript()?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-28 18:09:29220semak imbas

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

Melalui Parameter ke Skrip Kandungan yang Disuntik dengan Chrome.tabs.executeScript()

Kaedah chrome.tabs.executeScript() membenarkan suntikan Fail JavaScript ke dalam kandungan tab. Walau bagaimanapun, ia tidak menyediakan cara langsung untuk menghantar parameter kepada skrip yang disuntik.

Kaedah 1: Tetapkan Parameter Sebelum Pelaksanaan

Satu pendekatan melibatkan chrome.tabs bersarang. executeScript() panggilan untuk menentukan pembolehubah sebelum melaksanakan fail JavaScript:

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

Pembolehubah kompleks boleh ditukar kepada rentetan menggunakan 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'});
});

Dalam skrip kandungan (content. js):

alert('Example:' + config);

Kaedah 2: Tetapkan Parameter Selepas Pelaksanaan

Sebagai alternatif, parameter boleh diluluskan selepas melaksanakan fail JavaScript menggunakan API yang menghantar mesej:

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

Dalam content.js:

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

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Parameter ke Skrip Kandungan yang Disuntik dengan Chrome.tabs.executeScript()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn