我正在开发一个浏览器扩展,它需要在提供新的谷歌即时页面时进行调用,然后修改结果(想想SEOQuake)。
问题:如果用户将链接直接粘贴到 url 字段并按下回车键,则会发生新页面加载并且我的扩展程序将运行。然而,使用 google Instant,虽然 url 在您键入查询时会发生变化,但从技术上讲,您仍然在同一页面上,因此扩展程序无法运行。
我查看了 SEOQuake 的代码,这似乎是他们解决问题的方式:
document.body.addEventListener("DOMNodeInserted", sq_bindAsEventListener(this, function(event) { //
这是一个很好的解决方案,但它对我来说并不理想,因为据我所知,低于版本 9 的 IE 不支持 DomNodeInserted。(惊喜!)
我将 jQuery 与应用程序捆绑在一起,因此我可以访问所有 jQuery 函数。我正在考虑使用.keypress()并只是等到没有输入一秒钟 - 如果它是谷歌即时,我会知道页面已经改变的事实。
我的另一个想法是监视 URL 是否已更改;我似乎找不到任何 jquery 或 javascript 函数来跟踪 url 是否已更改。
知道已执行 google 即时搜索的最佳方法是什么?