【发布时间】:2022-01-19 18:02:16
【问题描述】:
我正在开发一个与我们的网站交互的扩展程序。 交互是通过发送消息和处理这些消息来创建的。
有时我想以隐身模式打开我们的网站,但扩展程序无法正常工作。在我看来,chrome.runtime.onMessage 上的 listeners 没有被触发。
在我的contentScript.js 我有类似的东西
window.addEventListener(
'message',
(event, r) => {
//check for sender and type otherwise return;
chrome.runtime.sendMessage(data);
}
);
扩展创建一个devtools_page,它加载一个.html。
在那个页面上我有
chrome.runtime.onMessage.addListener(messageHandler)
messageHandler 永远不会被触发。我什至可以用chrome.runtime.onMessage.hasListener(messageHandler) 检查监听器是否在那里,它返回true。
即使我将监听器放在background.js(设置在manifest.json)中,这个监听器也不会被触发。
我试图将"incognito": "split" 放入manifest.json,但是当我在隐身标签中打开页面时,浏览器完全崩溃了。对于权限,我有["cookies", "tabs"]。
更新:我在扩展程序设置页面上以隐身模式启用了扩展程序
更新:正如我所说,在设置"incognito": "split" 时,浏览器会崩溃。我将其缩小到我的contentScript.js,它由清单"content_scripts" 加载。我删除了所有内容。加载页面,浏览器不会崩溃。但是一旦我运行window.addEventListener,当我在隐身标签上打开该网站时,浏览器就会崩溃
更新:在windowAddEventListener 我做了一个chrome.runtime.sendMessage(data)。我这样做是为了使网站能够将必要的信息发送到扩展程序以显示数据。删除chrome.runtime.sendMassage 时,浏览器不会在带有"incognito":"split" 的隐身模式下崩溃
【问题讨论】:
-
可以在设置中启用隐身模式的扩展吗?
-
我在隐身模式下启用了扩展,但问题仍然存在
标签: javascript google-chrome-extension google-chrome-devtools incognito-mode