问题标签 [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 投票
2 回答
1000 浏览

c# - 如何在 mshtml & c# 中启用多级撤消/重做

我有一个托管在 Winforms 应用程序中的 System.Windows.Forms.Webbrowser 控件,并且正在加载一个 html 文档,该文档具有各种元素的 contentEditable 属性设置为 true。如何为文档启用多级撤消和重做?

TIA。

MB

0 投票
2 回答
31065 浏览

vb.net - 如何在 VB.NET 中使用 MSHTML?

在对问题 # 56107的回答中,Erlend 提供了这个示例 C# 代码:

我想在 VB.NET 中使用 mshtml,但 IDE 无法识别:

在 VB.NET 中使用 MSHTML 需要采取哪些额外步骤?

0 投票
2 回答
7112 浏览

javascript - MSHTML - 自动单击 JavaScript 确认对话框

我正在尝试使用 MSHTML(在 C#.Net 3.1 WPF WebBrowser 控件中)自动解析/提交网页。我可以毫无问题地填写表格、单击按钮和浏览页面。

但是我不知道如何在单击“提交”按钮时出现的 JavaScript 确认对话框上自动单击“确定”按钮。

C#代码:

出现确认对话框(“您确定吗?”)。我想以某种方式向 MSHTML 文档发送“Enter”键以自动确认提交。

0 投票
2 回答
2050 浏览

javascript - 如何使用 WPF WebBrowser 覆盖网页上的 btnSubmit_onclick javascript 函数?

我正在使用与WebBrowserWinForms 版本不同的 WPF 控件,并且来自这个优秀网站的许多建议在 WPF 中根本不起作用。

如何覆盖btnSubmit_onclick()网页上的 javascript 函数?

这个函数会生成一个我想绕过的确认对话框(比如“你确定吗?”)。基本上我想注入一个新功能btnSubmit_onclick()来替换现有的功能,我可以省略烦人的确认对话框。我可以访问 MSHTML 和所有页面对象,但很难在页面标题处注入脚本。到目前为止,我有:

但是现在我需要在其他脚本之前将这个新的脚本元素注入到头对象中,我希望它会在btnSubmit_onclick()下游覆盖现有的函数。

我没有成功尝试 head.injectAdjusentHTML,即使我使用 DEFER 属性,它也拒绝将任何脚本注入到标题中。

我该怎么做?

0 投票
1 回答
26025 浏览

excel - 我们如何在 VBA 中使用 MSHTML?

我在 MSDN 中看到了很多关于如何在 VS 中使用 MSHTML 的示例。有谁知道我们是否以及如何使用 MSHTML 和 VBA 打开网页?

0 投票
2 回答
14582 浏览

internet-explorer - Internet Explorer 自动化:如何抑制打开/保存对话框?

通过 MSHTML 控制 IE 实例时,如何禁止打开/保存非 HTML 内容的对话框?

我需要从另一个系统获取数据并将其导入我们的系统。由于预算限制,一段时间内无法在另一边进行开发(例如 WS),所以我现在唯一的选择是进行网络抓取。

远程站点是基于 ASP.NET 的,所以简单的 HTML 请求不起作用——太多的 JS。

我编写了一个简单的 C# 应用程序,它使用 MSHTML 和 SHDocView 来控制 IE 实例。到目前为止一切顺利:我可以执行登录、导航到所需页面、填充必填字段并提交。

然后我面临几个问题:

首先是该报告正在另一个窗口中打开。我怀疑我也可以通过枚举系统中的 IE 窗口来附加到该窗口。

其次,比较麻烦的是报告本身是CSV文件,并触发打开/保存对话框。我想避免它并让 IE 将文件保存到给定的位置,或者我也可以以编程方式单击对话框按钮(如何?)

我实际上完全不是 Windows 人(unix/J2EE),希望有更好知识的人能给我提示如何完成这些任务。

谢谢!

更新

我在 MSDN 上找到了一份有前途的文件:http: //msdn.microsoft.com/en-ca/library/aa770041.aspx

控制下载的内容类型以及下载后 WebBrowser 控件对它们的处理方式。例如,您可以阻止在用户单击链接时播放视频、运行脚本或打开新窗口,或者阻止下载或执行 Microsoft ActiveX 控件。

慢慢地读...

更新 2:让它工作,有点……

最后我让它工作了,但是以一种丑陋的方式。本质上,我在“导航之前”注册了一个处理程序,然后,在处理程序中,如果 URL 与我的目标文件匹配,我取消导航,但记住 URL,并使用 WebClient 类直接访问和下载该临时 URL。

我不能在这里复制整个代码,它包含很多垃圾,但这里是必不可少的部分:

安装处理程序:

记录 URL,然后取消下载(从而阻止保存对话框出现):

并在调用代码中使用找到的 URL 进行直接下载:

(驱动程序是 IE 实例的简单包装器 = _IE)

希望对某人有所帮助。

0 投票
3 回答
2681 浏览

c# - 获取 html 元素顶部和左侧属性数据

我正在使用 mshtml dll 开发一个助手,即,我正在尝试获取 htmll 元素的位置,当我尝试获取他的 style.posTop 值时,我有一个类型为 HTMLAnchorElementClass 的对象我得到了空引用异常

有更好的方法吗?

也许其他演员?

请帮忙

0 投票
3 回答
8237 浏览

mshtml - MSHTML 教程

我想学习一些关于 MSHTML 的基础知识,比如如何使用 IHtmlDocument 和 IHtmlDocument2 接口。我搜索了很长时间,但找不到适合初学者的教程。有人可以推荐一些东西来阅读吗?

编辑:我更喜欢使用 C#。

0 投票
12 回答
19439 浏览

c# - HTML - 我如何知道所有帧何时加载?

我正在使用 .NET WebBrowser 控件。我如何知道网页何时完全加载?

我想知道浏览器何时不再获取任何数据。(IE 在其状态栏中写入“完成”的那一刻......)。

笔记:

  • 对于包含多个框架的网站,DocumentComplete/NavigateComplete 事件可能会发生多次。
  • 浏览器就绪状态也不能解决问题。
  • 我尝试检查帧集合中的帧数,然后计算我得到 DocumentComplete 事件的次数,但这也不起作用。
  • this.WebBrowser.IsBusy 也不起作用。在 Document Complete 处理程序中检查它时始终为“假”。
0 投票
3 回答
9248 浏览

c# - 如何将网页保存为图像

我有一个 WebBrowser 控件,我想将查看的整个页面保存为图像(任何网页)。我尝试使用 IHTMLElementRender 界面,但它不适用于所有网页。也许我做错了什么,因为有时快照包括滚动条,有时它只是部分的。你有一个可以将整个网页保存到图像的工作示例吗?

谢谢。