我在C#中完成了IE扩展。它所做的基本工作就是在加载后修改页面内容,基本上突出显示某种类型的文本。所以我有一个onDocumentComplete
处理程序,它将一些javascript添加到页面的<head>
中,也是一个jquery-1.4.4.min.js:
public void OnDocumentComplete(object pDisp, ref object URL)
{
HTMLDocument document = (HTMLDocument)webBrowser.Document;
IHTMLElement head = (IHTMLElement)((IHTMLElementCollection)document.all.tags("head")).item(null, 0);
IHTMLScriptElement scriptObject3 = (IHTMLScriptElement)document.createElement("script");
scriptObject3.text = "/js/jquery-1.4.4.min.js";
scriptObject3.type = @"text/javascript";
((HTMLHeadElement)head).appendChild((IHTMLDOMNode)scriptObject3);
IHTMLScriptElement scriptObject2 = (IHTMLScriptElement)document.createElement("script");
scriptObject2.type = @"text/javascript";
scriptObject2.text = "(function($) {
$.fn.replaceText=function(b,a,c) {
return this.each(function() {
var f=this.firstChild,g,e,d=[];
if(f) {
do {
if(f.nodeType===3) {
g=f.nodeValue;
e=g.replace(b,a);
if(e!==g){
if(!c&&/</.test(e)) {
$(f).before(e);
d.push(f)
}
else {
f.nodeValue=e
}
}
}
} while(f=f.nextSibling)
}
d.length&&$(d).remove()
})
}
})(jQuery);";
((HTMLHeadElement)head).appendChild((IHTMLDOMNode)scriptObject2);
...
}
因此两个脚本都已加载但不起作用,我的意思是第二个脚本使用jquery(第一个脚本),chrome的扩展名添加了相同的脚本,所以我在想是否是IE的问题。