我正在使用Chrome扩展程序,我想检测用户何时输入URL。我知道:

chrome.tabs.onUpdated.addListener(eventLisenerObj.onUpdated);

但是,只要更改URL(例如,页面自动重新加载或用户单击链接等),它就会被调用。

我希望能够仅通过用户输入URL来确定URL是否已更改。

最佳答案

您可以使用 webNavigation.onCommitted (MDN)事件获取此信息。事件侦听器接收属性 transitionType (MDN),根据导航的原因,该属性将为different values(MDN)。您触发的值将完全取决于您的期望。对于您所描述的内容,您可能需要 'typed' (MDN),但也可能需要 'generated' (MDN), 'keyword' (MDN)和/或 'keyword_generated' (MDN)。

可能的值列表在Chrome的History API page上进行了说明(它们在Chrome webNavigation 页面上列出,但未在此处进行解释)(在MDN上: TransitionType )(Chrome历史记录API页面上的文字):



为了区分某些类型的转换,除了transitionType值之外,您还需要查看 TransitionQualifier (MDN)。可能的值是(来自Chrome documentation,与on MDN有所不同):

09-05 12:13