mshtml使用的问题补充

本文介绍了使用MSHTML组件解析HTML时遇到的问题及解决方法。通过设置HTML文档为设计模式,可以避免JavaScript代码的执行,从而防止弹窗或错误提示出现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用mshtml组件进行HTML解析的时候,由于在write的时候HTML中的javascript会被执行,如果被解析的HTML代码还有启动时Alert弹出对话框的时候,就会弹出对话框,如果被解析的代码有JavaScript错误的时候还可能会弹出报错对话框,经过查询资料发现只要设定HTMLDocumentClass为编辑模式,也就是designMode属性等于"on"的时候就不会报错了,因为编辑模式下javascript不会被执行,测试代码如下:
                HTMLDocumentClass doc = new HTMLDocumentClass();
                doc.designMode = "on";//这一句
                doc.IHTMLDocument2_write("<script>alert('aa');a.b=3;</script>");
                doc.close();
本来以为mshtml只是一个解析引擎而已,没想到也是会对代码进行执行,和Office 的Automation一样,竟然主动弹出UI了,气愤!

测试时有一个新发现,以前一直不明白Internet选项中“禁用脚本调试(Internet Explorer)”和“禁用脚本调试(其他)”的区别,现在发现,“禁用脚本调试(Internet Explorer)”是用来控制IE的调试行为,和“禁用脚本调试(其他)”则是控制使用mshtml的第三方程序或者使用WebBrowser控件的程序的行为,IE还分自家人和外姓人,呵呵。

如鹏网.Net培训班正在报名,有网络的地方就可以参加如鹏网的学习,学完就能高薪就业,点击此处了解

 

    三年前只要懂“三层架构”就可以说“精通分层架构”;现在则需要懂IOC(AutoFac等)、CodeFirst、lambda、DTO等才值钱;

    三年前只要会SQLServer就可以说自己“精通数据库开发”;现在则需还需要掌握MySQL等开源数据库才能说是“.Net开源”时代的程序员;

    三年前只要会进行用户上传内容的安全性处理即可;现在则需要熟悉云存储、CDN等才能在云计算时代游刃有余;

    三年前只要掌握Lucene.Net就会说自己“熟悉站内搜索引擎开发”;现在大家都用ElasticSearch了,你还用Lucene.Net就太老土了;

    三年前发邮件还是用SmtpClient;现在做大型网站发邮件必须用云邮件引擎;

    三年前缓存就是Context.Cache;现在则是Redis、Memcached的天下;

    如鹏网再次引领.Net社区技术潮流!点击此处了解如鹏网.Net最新课程

转载于:https://www.cnblogs.com/rupeng/archive/2010/06/29/1767933.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值