تمرير المعلمات إلى نصوص المحتوى المحقونة باستخدام chrome.tabs.executeScript()
عند إدخال ملف نصي محتوى باستخدام chrome.tabs.executeScript ({ملف: "content.js"})، يظهر سؤال شائع: كيفية تمرير المعلمات إلى JavaScript داخل البرنامج النصي للمحتوى file?
مغالطة تمرير المعلمات
من المهم توضيح أنه لا يمكنك تمرير المعلمات مباشرة إلى ملف. بدلاً من ذلك، لديك خياران لتحقيق هذه الوظيفة:
1. تعيين المعلمات قبل تنفيذ الملف
يستدعي Nest chrome.tabs.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، يمكنك الوصول إلى هذه المتغيرات:
// content.js
alert('Example:' config);
2. تعيين المعلمات بعد تنفيذ الملف
قم بتنفيذ الملف أولاً، ثم استخدم واجهة برمجة التطبيقات لتمرير الرسالة لإرسال المعلمات:
chrome.tabs.executeScript(tab.id, {file: 'content.js'}, function() {
chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
});
في content.js، استمع لهذه الرسائل باستخدام chrome.runtime.onMessage وتعامل مع الرسالة:
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
// Handle message.
// In this example, message === 'whatever value; String, object, whatever'
});
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3