对 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中文网其他相关文章!