我使用greasemonkey将脚本注入到浏览器中加载的每个页面中。我现在面临的问题是,如果浏览器在同一个域内从一个页面移动到另一个页面,greasemonkey就不会再次插入我的脚本。例如,我在google.com,所以当我的浏览器加载这个页面时,我的脚本就被注入了。现在,假设我输入了一些搜索字符串,然后单击search。浏览器会将我带到另一个页面,主url是google.com。在这里,我的脚本没有被注入。
我该如何解决这样的问题。
如有任何帮助或意见,我们将不胜感激。
发布于 2010-02-25 21:05:25
单击search。浏览器会将我带到另一个页面
实际上并非如此。在新的谷歌界面中,它实际上所做的是保留在现有的页面上,但用通过XMLHttpRequest获取的搜索结果列表来替换搜索表单。然后,它会更改URL的#fragmentIdentifier部分以存储搜索信息,以便您仍然可以导航该URL并为其添加书签,就像搜索结果是不同的页面一样。
这里,我的脚本没有被注入
没有,但您的脚本仍然存在,从它加载到搜索表单时起。
如果您需要脚本来检测URL的#hash部分是否已更改,以表示内部导航,则可以使用HTML5 onhashchange事件。然而,它只在Firefox3.6(和其他一些浏览器)中支持,所以为了与旧版Firefoxen的扩展兼容,您需要使用setInterval-style poller检查location.hash来确定何时会发生这种情况。
发布于 2010-02-25 17:30:04
如果你想在每个页面上加载你的greasemonkey脚本,你可以设置@include *
// @include *https://stackoverflow.com/questions/2332913
复制相似问题