我制作了一个Chrome扩展程序,用于监控webNavigation.onCompleted事件,以检测用户何时导航到其他页面。但是,我认为API的工作方式与我最初想的不同。
基本上,如果我将焦点设置到地址栏,我会立即为google.com获取几个onCompleted事件(我认为这是地址栏的搜索功能)。但是,当我输入某些地址时,例如evolvehq.com。和之前我点击Enter,我得到一个onCompleted事件的页面。当页面实际加载后,点击Enter后不会触发另一个事件。
发生了什么以及如何可靠地检测到页面更改,即目标页面已完全加载和并显示给用户?
更新经过一番调查后,看起来像目标网站(表面上)被Chrome预先加载导致单个onBeforeNavigate事件(但没有其他事件应该是跟着它)。
更有趣的是,在history.onVisited事件被触发之后,我得到了一个带有net :: ERR_ABORTED的webNavigation.onErrorOccurred事件,即使页面加载得很好。
糟糕...
答案 0 :(得分:1)
我有一个理论。我不是说那就是它。 可能是, Chrome即时正在解雇这些事件。 并且可能是,当您继续键入时,Chrome即时更改导致ERR_ABORTED的页面。 您可以在选项/基本/搜索中检查Chrome Instant是否已启用。