问题标签 [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.
delphi - 如何让 TWebBrowser 忽略其他控件的加速字符?
我在启用了 designMode 的表单上放置了一个 TWebBrowser。
在浏览器下方,我有一个关闭按钮,标题设置为“关闭&e”。
当我在 WebBrowser 中编辑文档内容并按下 E 键时,会调用关闭按钮。
它似乎将 TWebBrowser 视为其他不处理键和/或不接受字符的控件(例如 TButton)。
我该如何解决这个问题?
提前致谢。
delphi - 是否有另一种方法可以在不使用 Application.ProcessMessages 的情况下加载 MSHTML 文档?
是否有另一种方法可以在不使用 Application.ProcessMessages 的情况下加载 MSHTML 文档?
要将文档加载到 IHTMLDocument 中,我需要这样做:
我不想在加载过程中处理所有消息队列,因为我会改变我的应用程序流程,换句话说,可以在加载完成之前处理一些应该在加载完成之后处理的消息,甚至在加载结束之前。
IHTMLDocument 期望在加载过程中推进一个特殊的消息代码?还是有其他加载方式?
javascript - 为什么这个窗口对象没有 eval 函数?
我在 IE 上的YUI 富编辑演示中遇到了一个有趣的 (?) 问题。在查看window
用作浏览器的内容可编辑框架的对象时,我看到该eval
函数未定义(通过运行以下命令)。
这只发生在 IE 上(我检查了 IE6 和 IE8),它不会发生在 Firefox 或 Chrome 上。
所有其他window
功能和属性似乎都是有序的,现在我意识到这eval
并不是在全局对象上而是在全局对象上定义的,window
但我的理解是在浏览器中window
是全局对象(也eval
确实出现在所有其他窗口上,所以为什么不在这个?)。
有谁知道这是否是 IE 中的已知错误/限制,以及我如何才能eval
在此框架的全局对象的上下文中到达?(我需要在这个框架内运行的任何东西都可以使用副作用)。
c# - C#/.NET 4.0 中的新 NoPIA 和类型等效功能是否意味着不再需要 Microsoft.mshtml.dll
我正在维护一个基于 WPF 的应用程序,其中包含基于 IE Web 浏览器控件的基于 WinForms 的 WebBrowser 控件。当我们部署时,我们还必须提供Microsoft.mshtml.dll并为我们的 ClickOnce 发布过程做一些自定义配置,以便让事情正常工作。
我很好奇,使用 C# 4.0 中的新NoPIA和类型等效功能以及动态类型功能,如果我们升级,我们可以期望我们可以删除对Microsoft.mshtml.dll程序集的依赖关系吗?如果是这样,这不仅会大大减少我们的部署规模,还会简化我们的发布过程。
据我了解,我们应该能够将通常自动生成的类型嵌入到 COM 类型的额外程序集中,例如 Visual Studio 的 MapPoint 控件。我不知道这是否也适用于Microsoft.mshtml.dll,甚至在最简单的情况下也是如何完成的。如果有人可以解释这些新功能对依赖 COM 互操作,尤其是Microsoft.mshtml.dll程序集的项目的实际影响,那将对我有很大帮助。
c# - 设置 HTML 文本元素值
在 C# WPF 程序中,我试图设置定义的 HTMLText
元素的值:
我尝试了以下方法:
但我得到以下异常:
Unable to cast COM object of type 'System.__ComObject' to interface type 'mshtml.HTMLInputTextElement'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{3050F520-98B5-11CF-BB82-00AA00BDCE0B}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
我知道它在说什么,但我不知道我可以使用哪个对象来访问文本框。
我究竟做错了什么?
c# - 如何使用 C# 在 JavaScript 中创建的自定义对象上调用方法?
我有一个 WebBrowser 控件。我在 head 标签中添加了一些 JavaScript,我可以通过添加警报看到它按预期工作。在这个 js 中,我正在创建一个函数并将一些成员添加到它的原型中,如下所示:
然后回到 C# 内部,我正在做:
我可以看到测试对象是一些 ComObject 但是当我调用 run() 时没有任何反应。我没有收到任何错误,但没有任何反应。有谁知道如何调用这种类型的自定义对象?
还假设我想摆脱 createTest() 方法,如何从 C# 创建一个新的测试实例?
另外,对于奖励积分,关于将事件附加到这个自定义对象(比如说“完整”成员),我需要知道什么特别的事情,这样它就会回调到我的 C# 代码中吗?
delphi - 以编程方式旋转 tiff 图像(或 pdf)
有谁知道在 TWebBrowser 控件中旋转图像(jpg 或 gif)的方法(使用 Delphi)
更新
该文件将是本地的。
更新 2 所以我想问题应该是如何旋转图像或 pdf。
c# - BHO 内存泄漏
我已经根据本教程编写了 BHO:http: //www.codeproject.com/KB/cs/Attach_BHO_with_C_.aspx
我的GetSite
和SetSite
与教程列表相同。我正在添加/删除一个处理程序并在SetSite 函数内OnDocumentComplete
分配SHDocVW.WebBrowser webBrowser
IObjectWithSite
出于调试目的,我删除了除基本功能之外的所有功能。这是我的OnDocumentComplete
处理程序。
当我将我的 VS2008 调试器附加到 IE 实例时,我注意到所有加载的 .js 在它们各自的窗口/选项卡关闭后仍然存在。如果我将 OnDocumentComplete 中的条件设置为 false(或禁用我的 BHO),泄漏就会消失。我需要对 mshtml.HTMLDocument 进行更多清理吗?谢谢!
c++ - 32 位应用程序中的 WebBrowser 控件在 window.open() 调用上启动 64 位 Internet Explorer
我有一个在 Windows 7 64 位上运行的 32 位应用程序。该应用程序(用 C++ 编写)承载一个 WebBrowser 控件。
当要求 WebBrowser 控件弹出一个新窗口(通过 javascript window.open() 调用)时,它会启动一个新的 Internet Explorer 进程。特别是,这个新的 IE 进程是一个 64 位的 IE 进程。
由于网页喜欢 Adobe Flash,不幸的是我需要确保新启动的 IE 进程是 32 位版本(这是我机器上的默认版本),以便显示 AdobeFlash 内容。
有趣的是,IE 本身(WebBrowser/MSHTML 的包装器)不会遇到这个问题,这意味着可以设置某种配置来提示WebBrowser 控件启动 32 位进程。
我应该在哪里寻找以确保 WebBrowser / MSHTML 创建正确的流程的任何想法?
c# - C#:如何设置 mshtml.HTMLInputFileElement 的值
我目前正在开发一个项目,该项目需要能够使用 mshtml.HTMLInputFileElement 在 HTML 文档中设置“文件”类型的输入元素的值。我在做这件事时遇到了很大的困难。
首先我尝试了这个:
但是没有设置值。然后我在另一个论坛上读到 value 属性不能直接设置,但可以通过将焦点赋予该输入元素然后使用 SendKeys 将值发送到文件元素来设置,如下所示:
这也失败了,并抛出了一个 COM 异常,指出该字段不可写。
有没有办法设置 HTMLInputFileElement 的值字段?