IE内核的浏览器中,js嵌入比较方便,只要通过函数execScript就可以在网页中插入JS代码,然后进一步进行操作。
本例通过提取搜索结果中的URL,发现 Google 和 baidu 指向同一个地址,则提取出来。对有效的搜索结果还可以加以记录,以便以后再有同样的搜索就能先找到之前搜集的有效结果,大大提高搜索效率。
下图一目了然地展示了其中的功能
不过,这些方便简单的功能要编写代码也着实花去不少功夫。
首先看看“此链接对于搜索有效”这个按钮怎插入到搜索结果中的:
(主体程序(即IE内核浏览器调用msscript.ocx)所用的js脚 本和网页中的js脚本是两码事,这两个不同环境的脚本的变量和函数都是独立的,这一点在阅读的时候务必记住。网页的脚本的变量和函数在页面重新请求时就会 消失,而使用msscript.ocx的IE内核浏览器中的js脚本则一直不发生变化。)
以 Google 为例
function GoogleBrowser_OnNavigateComplete2(url)
{
the_href="";
js="";
js+="function loopAllElements(node)/r/n";
js+="{/r/n";
js+="if(node.nodeType ==1)/r/n";
js+="{
";
js+="if(node.tagName=='LI')/r/n";
js+="{
";
js+="if(node.childNodes[0].tagName=='H3')/r/n";
js+="{/r/n";
js+="var a=node.childNodes[0].childNodes[0];/r/n";
js+="if(a.href!=undefined)/r/n";
js+="{/r/n";
js+="JavaScriptHelper.OnSearchItem('google',a.href,node.outerHTML,'"+SearchKeyText+"');/r/n";
js+="var button=document.createElement('INPUT');/r/n";
js+="button.type='BUTTON';/r/n";
js+="button.value='此链接对于搜索 /""+SearchKeyText+"/" 有效';/r/n";
js+="codeString='JavaScriptHelper.OnLike(/"'+a.href+'/",/""+SearchKeyText+"/");';/r/n";
js+="button.οnclick=new Function(codeString);/r/n";
js+="node.appendChild(button);/r/n";
js+="}/r/n";
js+="}/r/n";
js+="}/r/n";
js+="}/r/n";
js+="var childrens=node.childNodes