【发布时间】:2013-09-11 05:41:02
【问题描述】:
我现在正在开发一个 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 上有用的相关帖子
Chrome extension, javascript: Why is this firing twice?
此页面与我的问题类似,但此页面正在讨论“tabs.onUpdated”事件。
由于“tabs.onUpdated”事件不提供事件过滤器,我更喜欢使用“webNavigation”API。
【问题讨论】:
-
您是否已经检查过 Facebook 是否包含指向 Facebook 的框架?
-
不。我马上去看看!谢谢!!!
标签: javascript google-chrome google-chrome-extension