最近在写一个小东西,发现以前知道的一些小细节竟然忘记了,很多恍然大悟之后感觉很幼稚的东西还是挺打击人的,小记于此,便于查询
chrome的开发环境提供了tab的一系列监听事件其中一个是 onUpdate事件
https://developer.chrome.com/extensions/tabs.html#event-onUpdated
官方api的写法对我来讲还是有点迷惑性的,比如
chrome.tabs.onUpdated.addListener(function(integer tabId, object changeInfo, Tab tab) {...});
调用的时候,直接贴过去了。但是程序并没有反映,那是js出现了解析错误。原因在于它的参数,调用方法的时候,参数是不用声明类型的,如下才是正确:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
alert(tabId);
});
重新载入扩展应用之后发现了这个alert运行了两次,究其原因,输出一下它的changeInfo看了一下它的status,原来是这个tab打开之后,有两个变化,一个是loading,一个是complate。
附录:changeInfo的内容如下
changeInfo ( object )
Lists the changes to the state of the tab that was updated.
status ( optional string )
The status of the tab. Can be either loading or complete.
pinned ( optional boolean )
The tab's new pinned state.
url ( optional string )
The tab's URL if it has changed.