我正在开发一个浏览器扩展程序,当提供新的Google即时页面时需要拨打电话,然后修改结果(请考虑SEOQuake)。
问题:如果用户将链接直接粘贴到url字段中,然后按Enter,则将发生新页面加载,并且我的扩展程序将运行。但是,对于Google即搜即得,尽管键入查询时URL会发生变化,但从技术上讲您仍在同一页面上,因此扩展名无法运行。
我查看了SEOQuake的代码,这似乎是它们解决问题的方式:
document.body.addEventListener("DOMNodeInserted", sq_bindAsEventListener(this, function(event) { //
这是一个很好的解决方案,但是对我来说并不理想,因为据我所知,版本9以下的IE不支持DomNodeInserted。(惊奇!)
我将jQuery与该应用程序捆绑在一起,因此可以访问所有jQuery函数。我正在考虑使用.keypress(),只是等到一秒钟没有输入-如果是Google即时,我就会知道页面已更改。
我的另一个想法是监视URL是否已更改。我似乎找不到任何跟踪网址是否已更改的jquery或javascript函数。
知道已执行Google即时搜索的最好方法是什么?
最佳答案
粗略的解决方案:使用setInterval()并检查window.top的位置是否更改(这意味着已执行新查询)。
关于javascript - 如何检测到显示了新的Google即时页面?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11597084/