隐身标签的 Chrome 扩展

Posted

技术标签:

【中文标题】隐身标签的 Chrome 扩展【英文标题】:Chrome extension for incognito tab 【发布时间】: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" 的隐身模式下崩溃

【问题讨论】:

可以在设置中启用隐身模式的扩展吗? 我在隐身模式下启用了扩展,但问题仍然存在 【参考方案1】:

Chrome 在隐身模式下阻止扩展,

所以为了测试它,你可以允许某些扩展在隐身模式下工作,

    点击 Chrome 中的菜单按钮。

    导航到更多工具 > 扩展。

    在打开的新标签页中,滚动列表以找到您要在隐身模式下启用的扩展程序。

    点击“允许隐身”按钮。

【讨论】:

谢谢。我已经这样做了。否则开发工具中的选项卡将不可用。所以不幸的是,这不是我的问题的解决方案。

以上是关于隐身标签的 Chrome 扩展的主要内容,如果未能解决你的问题,请参考以下文章

如何在隐身模式下启用我的 chrome 扩展程序?

如何测试已发布的Chrome扩展程序

chrome有些请求成功却没有preview和response没内容

是否可以通过用户脚本确定 Chrome 是否处于隐身模式?

使用Chrome浏览器浏览网页时内容无法正常显示怎么办?

在打开 chrome 开发者工具的情况下,React 应用程序变慢了。在隐身模式下工作正常