我一直想弄清楚如何让Greasemonkey用户脚本在后台打开搜索引擎页面并获取搜索结果。我试图查找示例来打开HTML页面,但afaik请求的所有示例处理ajax调用而不是html调用。如何从搜索引擎获取搜索结果?
任何提示将不胜感激。
我一直想弄清楚如何让Greasemonkey用户脚本在后台打开搜索引擎页面并获取搜索结果。我试图查找示例来打开HTML页面,但afaik请求的所有示例处理ajax调用而不是html调用。如何从搜索引擎获取搜索结果?
任何提示将不胜感激。
标准Greasmonkey GM_xmlhttpRequest
函数(link to API)可以处理任何类型的请求,而不仅仅是JSON。在示例下,查看GET request
代码片段。
请注意。像谷歌这样的搜索引擎不会喜欢屏幕截图(如果你太快抓取太多结果,可能会阻止你)。
在GreaseMonkey中没有做到这一点(事实上不知道,如果你能做到的话); 虽然如果你真的想要通过打开一个新的选项卡,如果你没有在你的代码中使用任何GM特定的东西(并且不想自动运行代码,那么这可以是障碍),你可以看看自定义按钮扩展。
有了它,您可以创建可以访问Firefox内部的按钮,并调用诸如gBrowser.addTab()
之类的内容。
但与CB合作比GM更棘手。
这些讯息可能帮助,如果你有兴趣:
代码示例从Mozilla的复制:
var newTabBrowser = gBrowser.getBrowserForTab(gBrowser.addTab("http://www.google.com/"));
newTabBrowser.addEventListener("load", function() {
newTabBrowser.contentDocument.body.innerHTML = "<div>hello world</div>";
}, true);
我做过类似的东西。
您只需将GM_xmlhttpRequest
响应保存在DIV
中即可。
有了这个DIV
,你可以做任何你想要的(显示,隐藏,仅显示一些内容,等等)
只要看看my script源代码。
我很积极,它会帮助你。
我知道你不需要,14K代表先生,但无论如何,我会打破它给你:)
功能conectar()
调用GM_xmlhttpRequest
[GET]和存储内容的只有一部分,我想要在#divtempora
中使用,这是一个用户从不会看到(隐藏)的虚拟div。
然后函数resp_dxlegacy()
遍历虚拟div,将我想要的信息保存到一个变量中,并再次调用conectar()
传递此参数并将内容存储在另一个div中,最后将该内容显示给用户。
Mr. 14k rep? :-)是的,我最终包含了jQuery,并将GM_xmlhttpRequest放入$()函数中(尽管我必须先从HTML中删除DTD行)。 – Spoike 2012-04-05 14:28:07