我在 C# 中构建了一个 BHO(浏览器助手对象),它检测网页中的电话号码并在其旁边放置一个带有超链接的图像。BHO 基本上插入了一个 javascript,它使用正则表达式字符串来查找电话号码并在其旁边添加图像。
这是相关代码
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 scriptObject =
(IHTMLScriptElement)document.createElement("script");
scriptObject.src = "\nhttp://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js";
((HTMLHeadElement)head).appendChild((IHTMLDOMNode)scriptObject);
IHTMLScriptElement scriptObject2 =
(IHTMLScriptElement)document.createElement("script");
scriptObject2.text = "\nwindow.onload = function()"+
"{"+
"$('body').html( $('body').html().replace(/(\\d\\d\\d\\d\\s\\d\\d\\d\\s\\d\\d\\d)/g,'$1 <a href=\"http://www.somewebsite.com\"><img src=\"image.png\" border=\"0\"></a>') );"
+"}"+
"\n\n";
((HTMLHeadElement)head).appendChild((IHTMLDOMNode)scriptObject2);
}
我在一个非常简单的页面上用很少的电话号码测试了 IE 中的 BHO。它按预期工作。但是当我用网络上的任何其他页面测试 BHO 时,我收到以下错误
Microsoft JScript 运行时错误:对象不支持此属性或方法
或者
Microsoft JScript 运行时错误:权限被拒绝
我收到一些其他页面的 Microsoft JScript 运行时错误。这是否意味着我不允许在页面中插入 javascript?可能是什么原因 ?我希望这是正确的方法。