繁体   English   中英

如果选项卡自动重新加载,浏览器扩展“browser.tabs.onUpdated.addListener”适用于 Chrome,但不适用于 Firefox

[英]Browser Extension "browser.tabs.onUpdated.addListener" works on Chrome but not on Firefox if tab auto reloads

我第一次成功地将内容脚本注入网站。 如果我填写了一些输入字段,站点会硬重新加载(以显示一些附加信息)并杀死我的内容脚本。

在我的 Chrome 扩展程序中,我有一个解决方法:

browser.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
  const tabURL = 'my-site.com';
  if (tab.url.includes(tabURL) && changeInfo.title && changeInfo.title.includes(tabURL)) {
    browser.tabs.executeScript(tabId, {
      code: `
        window.addEventListener("DOMContentLoaded", () => {
          new MyApp();
        });`
    });
  }
});

问题是,它在 Firefox 中不能作为 Firefox 扩展工作。 我使用 Firefox webextension-polyfill

是否有另一种适用于 Firefox 的“解决方法”? 或如何检测页面/选项卡是否在 Firefox 中重新加载(例如从后台脚本)? (并再次重新加载我的内容脚本)

这可能是答案,因为它有效:)

// CHROME Version
  if (tab.url.includes(tabURL) && changeInfo.title && changeInfo.title.includes(tabURL)
  // FIREFOX VERSION
  || tab.url.includes(tabURL) && changeInfo.status === 'complete') 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM