首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在mshtml.HTMLDocument中禁用Javascript (.NET)

如何在mshtml.HTMLDocument中禁用Javascript (.NET)
EN

Stack Overflow用户
提问于 2008-09-25 22:47:00
回答 4查看 4.9K关注 0票数 6

我有一个这样的代码:

代码语言:javascript
复制
Dim Document As New mshtml.HTMLDocument
Dim iDoc As mshtml.IHTMLDocument2 = CType(Document, mshtml.IHTMLDocument2)
iDoc.write(html)
iDoc.close()

但是,当我像这样加载HTML时,它会执行其中的所有Javascripts,并从"html“代码请求一些资源。

我想禁用javascript和所有其他弹出窗口(例如证书错误)。

我的目标是使用mshtml文档中的DOM以一种可靠的方式从HTML中提取一些标记(而不是一堆正则表达式)。

或者有没有另一个IE/Office DLL,我可以加载一个HTML,而不用考虑IE相关的弹出窗口或活动脚本?

EN

回答 4

Stack Overflow用户

发布于 2009-06-23 09:13:25

代码语言:javascript
复制
Dim Document As New mshtml.HTMLDocument
Dim iDoc As mshtml.IHTMLDocument2 = CType(Document, mshtml.IHTMLDocument2)
'add this code
iDoc.designMode="On"
iDoc.write(html)iDoc.close()
票数 6
EN

Stack Overflow用户

发布于 2008-09-26 12:46:19

如果您已经将'html‘作为字符串,并且您只想访问它的DOM视图,那么为什么还要将它“呈现”给浏览器控件呢?

我不熟悉.Net技术,但必须有某种StringToDOM/StringToJSON类型的东西才能更好地满足您的需求。

同样,如果上面使用的'html‘变量是一个URL,那么只需使用wget或类似的方法来检索字符串形式的标记,并使用适用的工具进行解析。

我会寻找一个.Net XML/DOM库并使用它。(再说一次,我认为这将是语言的一部分,但我不确定)

PS快速搜索后,我找到了这个(source)。如果你在你的HTMLDocument中使用它,我不确定它是否会有帮助。

代码语言:javascript
复制
    if(typeof(DOMParser) == 'undefined') {
      DOMParser = function() {}
      DOMParser.prototype.parseFromString = function(str, contentType) {
      if(typeof(ActiveXObject) != 'undefined') {
        var xmldata = new ActiveXObject('MSXML.DomDocument');
        xmldata.async = false;
        xmldata.loadXML(str);
        return xmldata;
     } else if(typeof(XMLHttpRequest) != 'undefined') {
        var xmldata = new XMLHttpRequest;
        if(!contentType) {
          contentType = 'application/xml';
        }
        xmldata.open('GET', 'data:' + contentType + ';charset=utf-8,' + encodeURIComponent(str), false);
        if(xmldata.overrideMimeType) {
          xmldata.overrideMimeType(contentType);
        }
        xmldata.send(null);
        return xmldata.responseXML;
     }
  }
}
票数 1
EN

Stack Overflow用户

发布于 2008-10-11 00:03:26

这听起来像是你在截取一些资源,然后试图用产生的HTML以编程的方式做一些事情?

如果事先知道它是有效的XHTML,那么将XHTML字符串(实际上是XML)加载到一个XmlDocument对象中,并以这种方式使用它。

否则,如果它可能是无效的,或者格式不正确,那么你将需要像hpricot这样的东西(但那是一个Ruby库)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/136682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档