我现在正在开发一个 chrome 扩展。
我遇到了这个问题,当我访问 facebook 时,“webNavigation.onComitted”事件在 facebook.com 上被触发了两次。
这是我现在拥有的代码,但它在控制台中打印了两次“Facebook”。
// while logging in facebook.com, it prints "facebook" in console.
chrome.webNavigation.onCommitted.addListener(function(e) {
console.log("Facebook");
}, {url: [{urlPrefix : 'https://www.facebook.com/'}]})
另一方面,这段代码工作正常。当我访问 youtube.com 时,它只会在控制台中按我的预期打印一次“youtube”。
// on accessing youtube.com, it prints "youtube" in console.
chrome.webNavigation.onCommitted.addListener(function(e) {
console.log("youtube");
}, {url: [{urlPrefix : 'http://www.youtube.com/'}]})
无论如何,我希望它在访问 facebook.com 时只加载一次。
我怎样才能让它工作?
如果有人知道如何解决这个问题,请帮帮我!!
提前致谢!!
我试过的
http://developer.chrome.com/extensions/webNavigation.html#events
我尝试了所有其他事件类型,例如“onBeforeNavigate”、“onCompleted”。但这并不能解决我的问题。
stackoverflow 上有用的相关帖子
此页面与我的问题类似,但此页面正在讨论“tabs.onUpdated”事件。
由于“tabs.onUpdated”事件不提供事件过滤器,我更喜欢使用“webNavigation”API。