• Bug:Interop type 'mshtml.HTMLDocumentClass' cannot be embedded. Use the applicable interface instead.


    在vs2010中运行HTMLDocumentClass doc =new HTMLDocumentClass(); 会出现Interop type 'mshtml.HTMLDocumentClass' cannot be embedded. Use the applicable interface instead.的编译错误。原因是我们添加 Microsoft.mshtml的时候,由于mshtml.dll太大,微软设置了这个属性Embed Interop Type =true .

    解决的办法是:直接去掉Class后缀。

    下面代码演示阻止WPF中WebBrowser 弹出javascript 出错对话框

        private void InjectDisableScript()
            { 

               string DisableScriptError =
               @"function noError() {
               return true;
                } 
               window.onerror = noError;";


                HTMLDocument doc = browser.Document as HTMLDocument;
              
           

                IHTMLScriptElement scriptErrorSuppressed = (IHTMLScriptElement)doc.createElement("SCRIPT");

                scriptErrorSuppressed.type = "text/javascript";

                scriptErrorSuppressed.text = DisableScriptError;

                IHTMLElementCollection nodes = doc.getElementsByTagName("head"); 

                foreach (IHTMLElement elem in nodes)
                {
                    HTMLHeadElement head = (HTMLHeadElement)elem;
                    head.appendChild((IHTMLDOMNode)scriptErrorSuppressed);

                }

            }

  • 相关阅读:
    C#数据结构与算法揭秘五
    C#数据结构与算法揭秘八
    C#数据结构与算法揭秘四
    C#数据结构与算法揭秘二
    C#数据结构与算法揭秘三
    C#数据结构与算法揭秘九
    C#数据结构与算法揭秘一
    win8 开发之旅(14) 飞机游戏制作揭秘
    MySQL 二进制文件 (STATEMENT)浅谈
    MySQL【Update误操作】回滚
  • 原文地址:https://www.cnblogs.com/mjgb/p/1860270.html
Copyright © 2020-2023  润新知