Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Meluluskan Parameter kepada Skrip Kandungan yang Disuntik dalam Sambungan Chrome?

Bagaimana untuk Meluluskan Parameter kepada Skrip Kandungan yang Disuntik dalam Sambungan Chrome?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-28 07:19:30647semak imbas

How to Pass Parameters to Injected Content Scripts in Chrome Extensions?

Melalui Parameter ke Skrip Kandungan yang Disuntik Menggunakan chrome.tabs.executeScript()

Apabila menyuntik skrip kandungan menggunakan chrome.tabs.executeScript(tab.id, {file: "content.js"}), tiada cara langsung untuk menghantar parameter kepada skrip. Walau bagaimanapun, anda boleh melaksanakan fungsi ini menggunakan dua kaedah alternatif:

Menetapkan Parameter Sebelum Pelaksanaan

Untuk menentukan pembolehubah sebelum melaksanakan skrip kandungan, nest chrome.tabs.executeScript memanggil seperti yang ditunjukkan di bawah:

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

Untuk pembolehubah kompleks, gunakan JSON.stringify untuk menukar objek kepada rentetan:

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 content.js, akses pembolehubah menggunakan alert('Contoh:' config); .

Menetapkan Parameter Selepas Pelaksanaan

Untuk menetapkan parameter selepas pelaksanaan, gunakan API menghantar mesej:

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

Dalam content.js, dengar mesej menggunakan chrome.runtime .onMessage.addListener(fungsi(mesej, penghantar, sendResponse) { // Mengendalikan mesej });. Mesej akan mengandungi nilai parameter.

Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Parameter kepada Skrip Kandungan yang Disuntik dalam Sambungan Chrome?. 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