我正在使用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有所不同):