问题标签 [ihtmldocument2]

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 投票
0 回答
424 浏览

excel - 使用 Excel 宏 Vba 将文件上传到网页(IE11)

我正在尝试使用以下代码将文件上传到网页:

'代码不带有属性'value'空(=“”)它只是不存在,直到我单击按钮“搜索”'并使用弹出对话框选择一个文件。'另外,当通过代码插入值时,源代码'返回'value =“”',每当我再次尝试时,'它仍然得到value =“”

'单击会触发一个用于选择文件的窗口弹出对话框,因此它不值得'使用它。

'我可以使用这个命令来触发上传事件,但是值=“”'它会返回“找不到文件”弹出窗口

'这里是情况的正确代码___________________:

希望大家帮帮我,希望大家理解!

0 投票
1 回答
114 浏览

html-agility-pack - 如何找出 HtmlAgilityPack.HtmlDocument 的 ContentType

我试图确定HtmlAgility.HtmlDocument. 任何想法??

如果可能,我想知道如何找出 contentType hDocument,或者是否有任何解决方法。谢谢

0 投票
1 回答
147 浏览

javascript - 在第二次导航后访问 32 位 Outlook 中的 IHtmlDocument2.Script 变量时出现 System.NotSupportedException

我正在使用 VB .Net 在 Outlook 中开发一个插件,该插件使用 mshtml 界面在阅读窗格中查看一个 html 窗口。该页面有一些我使用 IHtmlWindow2.execScript 调用的 javascript 代码。我使用 IHtmlWindow2.navigate(url) 函数加载页面并通过执行以下操作访问一些 javascript 变量:

当我从 Outlook 64 位实例运行此代码时,它运行良好...从 Outlook 32 位实例运行插件(无论是在 32 位还是 64 位机器上),当我在 htmlWindow 上执行第二次导航后,它会给出 System.NotSupportedException,当我第一次导航到url并执行此代码它没有问题。

在 Outlook 中加载的页面上使用 Internet Explorer 调试器 F12Chooser,执行以下代码没有错误并返回所需的值。

但是,我尝试了一个突破点

并在 Visual Studio 的即时窗口中执行相同的代码,但每次导航后使用另一个变量名,我没有例外

我不理解这种行为,我将不胜感激。我怀疑它与一些缓存有关,但我不知道在哪里,我在互联网上搜索了这个但没有成功。

0 投票
1 回答
313 浏览

delphi - 我在 Delphi 中从 IHTMLDocument2 获取超链接时遇到问题

我在 Delphi 中从 IHTMLDocument2 获取超链接时遇到问题。例如,IHTMLDocument2 不是返回完整链接“ http://ena.ge/explanatory-online ”,而是返回“about:/explanatory-online”。用根 URL 简单地替换“about”并不适用于所有情况。

这是我正在使用的代码:

0 投票
1 回答
234 浏览

c# - 如何检测 Iframe 是否已在 C# 中加载

我想在 HTML 文档中识别 Iframe 是否已加载。

这是我尝试过的,但我不确定这是否是识别 IFrame 加载的正确方法:

0 投票
0 回答
143 浏览

c# - C# 难以访问 HTML DOM 元素

我正在尝试从网站访问一个元素,但是它没有返回完整的元素。

两者idDooOutertarget1Outer都没有从 中返回后代元素dooplay_player_response,这将是class="pframe".

我尝试过使用FindByClassName()功能,但无法访问此元素。我的目的是在iframe. 有人可以帮我解决这个问题吗?

编辑:观察。我尝试使用其他编程语言,例如 Java、Python、javascript (Tampermonkey) 和 C++,结果都一样,我无法获取此元素。

0 投票
0 回答
163 浏览

html - IHTMLDocument2_write 导致 Internet Explorer 安全弹出 - Powershell

我有一个 Powershell 脚本,可以打开本地保存的 html 文件并解析该文件。当它从创建它的服务器运行时,它工作正常。但是,当我从需要驻留的服务器上运行它时,我不断弹出 IE 安全性。代码是:

变量 $SrcFilePath 是本地存储 HTML 文件的路径。当它到达线路时

弹出窗口出现。 IE 安全弹出窗口

单击“关闭”后,脚本将恢复。问题是,这个脚本将是自动化的,所以当它出现时,没有人会在附近点击“关闭”按钮。

我尝试创建一个共享到保存 html 文件的位置,并将其添加到 IE 中的受信任站点。我已经更改了安全级别,并且还添加了 about:security_scriptdriver64.exe 到 IE 的本地 Intranet,但这些都不起作用。有任何想法吗?

详细信息更新 我运行它的服务器是 Windows 2016,IE 版本是 11。

我正在解析的 html 文件本地保存在服务器上,即 E:\temp\webpage.html

当我创建共享并将其添加到受信任的站点时(我尝试使用 NetBIOS 和 FQDN),未选中“需要服务器验证”选项。

我还尝试将 about:security_scriptdriver64.exe 添加到受信任的站点。

我还通过服务器管理器为管理员和用户关闭了“IE 增强安全配置”,但这不起作用。

更新 2 我在上一条评论中提到:security_scriptdriver64.exe 到受信任的站点,经过测试,它没有工作。我开始研究使用 Invoke-WebRequest 并使用它。有问题,所以我想我会回到 IHTMLDocument2_write 解决方案。我想我会使用一个简单的 html 文件来开始,我有一张桌子,一行,一列。我的计划是慢慢开始将原始 html 文件中的标签添加到准系统中。当我想我会用原版再试一次时,我已经更新了标题标签。有效。

我从受信任的站点中删除了 about:security_scriptdriver64.exe 并再次尝试。它仍然有效。我离开了它,一切都很好,所以回到绘图板。

我再次开始将关于行添加到受信任的站点。没有工作,所以再次使用准系统 HTML 开始。该文件中有一段 JavaScript。当我将它添加到准系统文件时,它不起作用。当我删除它时,它起作用了。所以,它是 JavaScript。我仍然不明白为什么它上周开始工作。HTML 文件始终使用该 JavaScript 块生成。SMH。

0 投票
1 回答
41 浏览

vba - VBA IE 在表格内单击

我需要单击('href' )名为“WS557568037 / 个人工作区”,但没有任何效果。我试过这段代码:

HTML

0 投票
1 回答
89 浏览

delphi - 使用带有 TWebBrowser 的 IHTMLEventObj 处理程序的内存泄漏

我正在使用 TWebBrowser 来显示 WYSIWYG HTML 编辑器,并添加了一些处理程序来捕获键盘和鼠标事件,因此我可以将此编辑器集成到我的应用程序流中。此浏览器集成在自定义 TPanel 中,即 TPanelEditorHTML。

这就是我这样做的方式,遵循这个答案中的一些提示:

在我的 TWebBrowser 容器上,我有这个:

BrowserIHTMLDocument2OnKeyDown 等是我将 HTML 编辑器数据集成到我的应用程序中的所有工作的程序

我在启动时创建处理程序

当我加载 HTML 编辑器时,我将此处理程序分配给 DOM 树中的几个元素:

当用户结束编辑我删除这个处理程序

我的问题出在 TPanelEditorHTML 析构函数上。这导致了四个 THTMLBrowserEventLink 的内存泄漏。如果我尝试 FreeAndNil 处理程序,我会收到运行时错误。

我发现了这篇关于内存泄漏的文章,我试图替换这两种复制都无济于事的方法。

我错过了什么吗?

0 投票
1 回答
93 浏览

delphi - 将 IHTMLDocument2 实例分配给 TWebBrowser 实例

我正在使用该IHTMLDocument2接口的一个实例来解析一些 HTML,如本文所述:

从 IPersistMoniker 加载需要很长时间才能加载无法解析的 URL

代码比较简单:

完成后,我保存diDoc2上面新修改的 HTML 内容并将 HTML 加载到TWebBrowser.

  1. 我是否可以将IHTMLDocument2上面已经解析的内容直接“分配”给IHTMLDocument2包含在 中的内容TWebBrowser,这似乎是一种更快的方法。我可以使用可能IHTMLDocument2.write或其他方法来做到这一点,但是如果首先可能的话,可能会比简单地分配一个指向已经初始化的对象的指针有一些性能损失。换句话说,我只是想“显示”/“渲染”我刚刚在排序的“后台缓冲区”中解析的内容。

  2. 是否需要打电话CoInitialize和打电话CoUninitialize之前和之后CoCreateInstance?我见过一些代码可以做到这一点,但没有它也可以工作,除非 Delphi/C++ Builder 做一些底层初始化。