无法嵌入Interop类型'mshtml.HTMLHeadElementClass'

时间:2013-02-01 14:44:57

标签: c# wpf dom

有任何线索如何解决此错误?

 void wb_LoadCompleted(object sender, NavigationEventArgs e)
        {
             var doc = (mshtml.HTMLDocument)wb.Document;

             HTMLHeadElementClass head = (HTMLHeadElementClass)((IHTMLElementCollection)doc.all.tags("head")).item(null, 0); // Error

             IHTMLScriptElement scriptObject = (IHTMLScriptElement)doc.createElement("script");
             scriptObject.type = @"text/javascript";
             scriptObject.text = @"function btn1_OnClick(str){alert('you clicked' + str);}";

             head.appendChild((IHTMLDOMNode)scriptObject); 
}

2 个答案:

答案 0 :(得分:1)

名称以“Class”结尾的合成COM互操作类不可嵌入。 “嵌入互操作类型”功能(又名“nopia”)仅支持嵌入实际出现在类型库中的接口和coclass类型。

使用接口类型mshtml.IHTMLHeadElement。就像你为IHTMLScriptElement所做的那样。

答案 1 :(得分:0)

我可以在这里找到解决方案

WPF WebBrowser HTMLDocument

不要忘记参考Microsoft.mshtml