javascript - 从 chrome 扩展监控 history.pushstate

标签 javascript google-chrome-extension

我正在开发一个 Chrome 扩展来调整 Facebook。但是,如 Facebook 等支持 HTML5 的网站中捕获浏览操作需要覆盖 window.history.pushState,如 in this SO question 所述。 .

不幸的是,Chrome 的隔离世界似乎阻止了这种覆盖。除了轮询 document.location.href 之外,还有其他捕获历史更改的方法吗?

最佳答案

不确定您是否尝试在 background.js 或 content.js 中执行此操作,但如果是前者,您可以使用 webNavigation 事件执行此操作:

您需要在ma​​nifest.json中为webNavigation设置权限:

  "permissions": [
     "webNavigation"
  ],

然后在background.js中:

  chrome.webNavigation.onHistoryStateUpdated.addListener(function(details) {
        console.log('Page uses History API and we heard a pushSate/replaceState.');
        // do your thing
  });

来源:Chrome Extension docs for webNavigation

关于javascript - 从 chrome 扩展监控 history.pushstate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4646360/

相关文章:

javascript - 使用angularjs上传多个文件

javascript - 如何在不使用 jQuery 重新执行脚本的情况下使用脚本元素移动元素?

javascript - 从vue观察者获取长度值

javascript - 如何更新保存在 LocalStorage 中的 Redux 状态结构

javascript - 将 setTimeout 与 window.open() 一起使用后,将 setTimeout 与 window.close() 一起使用不起作用

javascript - chrome.tabs.query状态:loading -> exception?

javascript - chrome.tabs.executeScript : Doesn't work when I tried to insert an image into specific website

javascript - 使用 Jasmine 模拟 chrome.storage.local 函数

google-chrome-extension - Chrome扩展程序图标更改问题

google-chrome - Chrome 扩展 oAuth 请求重定向页面未加载