问题标签 [mshtml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
12 回答
36530 浏览

c# - .NET WebBrowser 控件中的阻止对话框

我有一个 .NET 2.0 WebBrowser 控件,用于在没有用户交互的情况下导航某些页面(不要问......长篇大论)。由于此应用程序的无用户特性,我已将 WebBrowser 控件的 ScriptErrorsSuppressed 属性设置为 true,VS 2005 中包含的文档将 [...]“隐藏其所有源自底层 ActiveX 控件的对话框,不仅仅是脚本错误。” 但是,MSDN 文章没有提到这一点。我已经设法取消了 NewWindow 事件,它可以防止弹出窗口,所以已经处理好了。

任何人都有使用其中之一并成功阻止所有对话框、脚本错误等的经验吗?

编辑

这不是 IE 的独立实例,而是位于 Windows 窗体应用程序上的 WebBrowser 控件的实例。任何人都对此控件或底层控件AxSHDocVW有任何经验吗?

再次编辑

对不起,我忘了提这个...我试图阻止JavaScript alert(),只有一个 OK 按钮。也许我可以转换为 IHTMLDocument2 对象并以这种方式访问​​脚本,我已经使用了一点 MSHTML,有人知道吗?

0 投票
3 回答
3577 浏览

vb.net - IE 自动化书籍或资源?使用 MSHTML/ShDocVw VB.Net

任何人都可以推荐一本书或一个网站来解释使用 VB.NET 的 Internet Explorer 自动化吗?我知道 mshtml 和 ShDocVw.dll 可以做到这一点,但我需要一个资源来向我解释。我想读/写值以及单击按钮。

到目前为止,我遇到的唯一一本书是 .Net Test Automation Recipes。这是给我的吗?

谢谢!

0 投票
1 回答
1715 浏览

c++ - 未在 IHTMLElement 事件处理程序中获取事件参数

我已经向 IHTMLElement 实例添加了回调,但是当为事件调用 IDispatch::Invoke 时,从来没有任何参数(即 pDispParams->cArgs 和 pDispParams->cNamedArgs 始终为 0)。例如,我为 onmouseup 事件添加回调。据我所知,这个事件的回调应该接收一个 MouseEvent 对象。那是对的吗?如果是这样,我需要做些什么来确保发生这种情况?

这是在 Windows XP SP2 上使用用于 IE 6 sp2(或更好)的 MSHTML。

0 投票
4 回答
4862 浏览

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

我有这样的代码:

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

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

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

或者是否有另一个 IE/Office DLL,我可以在不考虑 IE 相关弹出窗口或活动脚本的情况下加载 HTML?

0 投票
1 回答
2256 浏览

mshtml - 使用 MSHTML 在 WebBrowser 控件中修改请求/响应流

我需要找到一种方法来获取 webbrowser winforms 控件内的请求/响应流,并看到它不是真正直观的。例如,我需要能够在用户单击提交按钮时修改发布数据。看起来您必须注册一些 MSHTML COM 事件才能这样做,但不确定我需要订阅哪些(以及如何订阅)。过去有没有人这样做过?例子?

0 投票
2 回答
672 浏览

.net - 使 DOM 元素有效地只读

我正在编写一个 .NET 表单控件来使用 MSHTML 编辑 HTML。我正在创建一些自定义元素,并希望使它们有效地只读。我想我可以通过关注整个元素来解决这个问题,只要焦点在该元素的任何位置输入,但 HtmlElement.Focus() 不会选择整个元素,而且我似乎无法捕获光标的输入.

另一种选择是在元素的文本发生更改时引发事件(我期望在 KeyDown 上),但我也无法触发该事件。关于为什么我对事件行为的期望是错误的任何想法或替代实施建议?

0 投票
1 回答
791 浏览

mshtml - 使用 MSHTML 编辑表格

有没有办法使用 MSHTML 创建/编辑表格而无需编辑底层 HTML?

0 投票
2 回答
1721 浏览

vb.net - 使用 external.menuArguments 在 Internet Explorer 窗口中修改 HTML

我有一个在 Internet Explorer 中使用上下文菜单扩展调用的 VB.NET 类。

代码可以访问页面的对象模型,读取数据不成问题。这是测试函数的代码...它更改状态栏文本(OK),打印页面 HTML(OK),通过添加文本更改 HTML 并再次打印页面 HTML(OK,在第二个 pop-我添加的文本在 HTML 中)

但 Internet Explorer 窗口不显示它。我在哪里做错了?

该函数在 JavaScript 中是这样调用的:

0 投票
1 回答
1897 浏览

c# - MSHTML:如何清除 MSHTML 的撤消/重做缓冲区

我正在使用类似于包含 COM/非托管 MSHTML 控件的 WebBrowser 控件的 C# 包装器控件。我在编辑模式下使用此控件,它允许应用程序的用户以所见即所得的方式编辑 HTML 文档。

该控件管理它自己的撤消/重做堆栈。

如何重置/清除它,以便用户无法重做/撤消对文档内容的更改,而只能编辑它?

0 投票
1 回答
875 浏览

javascript - 如何从 IE WebBrowser(IHtmlWindow2 或 Javascript)确定导航方向

我正在使用 WPF Web 浏览器控件,当它触发 Navigating 事件时,事件参数始终包含 NavigationMode.New。如果用户从 Web 控件中选择“返回”,则应将其设置为 NavigationMode.Back。

所以它关闭到下面的 COM ActiveX 控件来确定导航的方向。我一直在查看 IHtmlWindow2 和 IHtmlDocument2 和 IOmHistory,但没有看到导航上发生的任何事情来告诉我导航是由后退、前进、新地址还是刷新引起的。

由于 IHtmlWindow 和 Javascript 具有相同的 DOM,也许有人知道如何从 Javascript。

我也一直在查看 IWebBrowser2 界面,但在那里也找不到任何东西。

是否有我需要检查的事件或财产?