Google chrome extension webNavigation.onCompleted在地址栏中键入时激发

Google chrome extension webNavigation.onCompleted在地址栏中键入时激发,google-chrome-extension,Google Chrome Extension,我制作了一个Chrome扩展,用于监视webNavigation.onCompleted事件,以检测用户何时导航到其他页面。然而,我认为API的工作原理与我最初认为的略有不同 基本上,如果我将焦点设置到地址栏,我会立即得到几个google.com的未完成事件(我假设这就是地址栏的搜索功能)。但是,当我输入某些地址时,例如evolvehq.com。在我按下Enter键之前,我会得到一个页面的未完成事件。在页面实际加载后,点击Enter键不会触发另一个事件 发生了什么以及如何可靠地检测页面更改,即当

我制作了一个Chrome扩展,用于监视webNavigation.onCompleted事件,以检测用户何时导航到其他页面。然而,我认为API的工作原理与我最初认为的略有不同

基本上,如果我将焦点设置到地址栏,我会立即得到几个google.com的未完成事件(我假设这就是地址栏的搜索功能)。但是,当我输入某些地址时,例如evolvehq.com。在我按下Enter键之前,我会得到一个页面的未完成事件。在页面实际加载后,点击Enter键不会触发另一个事件

发生了什么以及如何可靠地检测页面更改,即当目标页面已完全加载并显示给用户时

更新:经过进一步调查,在目标网站(表面上)被Chrome预加载后,点击Enter键似乎会导致一个onBeforeNavigate事件(但没有其他应该随之发生的事件)

更有趣的是,在history.onVisited事件触发之后,我得到了一个webNavigation.onerrorOccessed事件,其中包含net::ERR_中止,即使页面加载得很好


啊…

我有一个理论。我不是说就这样。 可能,Chrome Instant正在触发这些事件。 当你继续键入时,可能会立即更改页面,导致错误中止。
您可以在Options/Basic/Search中检查Chrome Instant是否已启用。

在此提交一份错误报告:当webNavigation API明显给出不一致的结果时,您对如何正确检测导航事件有何想法?例如,其他人使用history.onvisted事件吗?我已将错误抛出到正确的队列中。对于临时解决方法,您可以查看tab API。Mike:这也是我所希望的,但正如您在记录单中的调试输出中所看到的,在加载页面后,我甚至没有收到未更新的事件,这也让我感到困惑。它目前在我测试的浏览器中被禁用。