簡體   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