Chrome扩展程序:onCompleted事件不会触发frameId == 0

时间:2017-10-02 15:30:24

标签: javascript google-chrome google-chrome-extension

我正在开发Chrome扩展程序,可以增强LinkedIn中的行为。我设置了webNavigation.onCompleted.addListener。我只想在页面完全"完全"之后运行我的代码。解决。我计划通过以下方式做到这一点:

  

关于帧ID的说明

     

标签内的框架可以通过框架ID识别。帧ID   主框架始终为0,子框架的ID为正   数。一旦文档在框架中构建,其框架ID   在文件的生命周期内保持不变。从Chrome 49开始,   这个ID在帧的生命周期内也是恒定的(跨越   多个导航)。

https://developer.chrome.com/extensions/webNavigation#event-onHistoryStateUpdated

基于此模型构建的代码就是这样。

  if (details.frameId == 0){
    console.log("%c Saw frameId 0", 'color: green');
  } else {
    console.log("%c Saw frameId != 0; guarding", 'color: tomato');
    return;
  }

刷新页面时,我看到frameId 0(是的!)。但是,当我访问网站的其他部分并导航回同一位置时,我看到frameId0。屏幕截图显示了"硬刷新"经验和(在标记之后)导航体验。

所以我的问题是:我怎样才能可靠地知道被诅咒的页面何时被真正加载。我认为frameId == 0将是神奇的子弹,但它继续阻碍。

我的假设是turbolinks或Ember以某种方式抑制该信号,但我正在进一步调查。是否有更好的赛事要跟踪?

谢谢!

0 个答案:

没有答案