對Chrome 擴充功能中的孤立腳本進行故障排除
意外重新載入Chrome 擴充程式後進行復原可能會導致出現孤立腳本,從而導致內容之間的通訊問題腳本和擴充的其他部分。以下是刪除孤立腳本並恢復正常功能的解決方案:
殺死孤立腳本
孤立內容腳本仍然可以接收 DOM 訊息。透過視窗物件將訊息從新的工作內容腳本傳送到幻影內容腳本。收到訊息後,孤立腳本應該:
在內容中。 js:
<code class="javascript">var orphanMessageId = chrome.runtime.id + 'orphanCheck'; window.dispatchEvent(new Event(orphanMessageId)); window.addEventListener(orphanMessageId, unregisterOrphan); // ... Register event listeners with named functions to preserve their references function unregisterOrphan() { // ... Unregister listeners and remove global variables }</code>
確保內容腳本注入
為了防止向孤立腳本發送訊息,您的popup.js 應檢查是否實時內容腳本在發送訊息之前運行:
<code class="javascript">async function sendMessage(data) { const [tab] = await chrome.tabs.query({ active: true, currentWindow: true }); if (await ensureContentScript(tab.id)) { return await chrome.tabs.sendMessage(tab.id, data); } } async function ensureContentScript(tabId) { // ... Check if content script is running and inject it if not }</code>
透過實施這些措施,您可以有效刪除孤立腳本、防止通訊問題並恢復Chrome 擴充功能的功能。
以上是如何解決 Chrome 擴充功能中孤立腳本導致的通訊問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!