अन्य उत्तर उल्लेख के रूप में, तुम इतनी तरह popup.js से background.js कार्यों कॉल कर सकते हैं:
var _background = chrome.extension.getBackgroundPage();
_background.backgroundJsFunction();
लेकिन पहुँच popup.js या background.js से popup.html, तो आप ऐसा जैसे संदेश वास्तुकला का उपयोग करना चाहिए रहे हैं:
// in background.js
chrome.runtime.sendMessage({ property: value });
// in popup.js
chrome.runtime.onMessage.addListener(handleBackgroundMessages);
function handleBackgroundMessages(message)
{
if (message.property === value)
// do stuff
}
हालांकि, यह है, कि तुम तुल्यकालिक background.js से popup.js उपयोग कर सकते हैं लगता है बस जैसे आप सिंक्रनाइज़ रूप से अन्य तरीकों तक पहुंच सकते हैं। chrome.extension.getViews
आपको पॉपअप window
ऑब्जेक्ट प्राप्त कर सकता है, और आप इसका उपयोग फ़ंक्शंस कॉल करने, चर का उपयोग करने और डीओएम तक पहुंचने के लिए कर सकते हैं।
var _popup = chrome.extension.getViews({ type: 'popup' })[0];
_popup.popupJsFunction();
_popup.document.getElementById('element');
_popup.document.title = 'poop'
नोट ताकि आप उस को संभालने के लिए है कि getViews()
[]
वापस आ जाएगी अगर पॉपअप खुला नहीं है,।
मुझे यकीन नहीं है कि किसी और ने इसका उल्लेख क्यों नहीं किया। शायद इस पर कुछ नुकसान या बुरी प्रथाएं हैं जिन्हें मैंने अनदेखा कर दिया है? लेकिन मेरे अपने विस्तार में सीमित परीक्षण में, ऐसा लगता है कि यह काम करता है।
स्रोत
2017-06-13 06:44:31
कल जब मैं जांच कर रहा था, मुझे एहसास हुआ कि पॉपअप क्षणिक प्रतीत होता है; प्रत्येक बार खोले जाने पर स्क्रिप्ट को फिर से लोड किया जाता है। मैंने माना था कि यह एक सतत वस्तु थी। लेकिन अब मुझे लगता है कि किसी भी पॉपअप स्थिति को पृष्ठभूमि में संग्रहीत करने की आवश्यकता है और पॉपअप खोले जाने पर लोड किया जाता है। –