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

html - 所见即所得的html编辑器查询

我正在创建一个简单的 WYSIWYG HTML 编辑器,以使我的应用程序的用户能够设计简单的 HTML 电子邮件。

目前,我决定使用带有 MSHTML 的 Web 浏览器控件来编辑显示的内容。我有一个工具栏,其中包含所有相关按钮、粗体、下划线等。

我需要一种方法来检查当前块是否有任何格式,以便可以在工具栏的按钮上显示正确的状态。我尝试向 IHTMLDocument 添加一个事件处理程序,以便在移动鼠标或按下箭头键时触发,但是,这会阻止 Web 浏览器接受任何输入。

有没有更简单的方法来实现这个目标?

0 投票
5 回答
50513 浏览

c# - 无法加载文件或程序集 'Microsoft.mshtml ...强名称验证失败

我制作了一个 WPF/C# 程序,并使用 Internet 控件进行所见即所得的 HTML 编辑。

它是一个常规的可执行程序。

它适用于大多数计算机,但是有些计算机给了我以下错误。

无法加载文件或程序集 'Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。强名称验证失败。

'Microsoft.mshtml.dll' 文件随程序一起分发。它与所有其他必需的 dll 位于与 exe 文件相同的文件夹中。


这是来自的输出Fuslogvw

谢谢

0 投票
2 回答
236 浏览

html - 有没有办法从 HTML、CSS 或 MSHTML 界面引用 Internet Explorer 中的系统字体和颜色?

我想做这样的事情:

是否有任何 Microsoft 特定的 CSS 值提供此功能?

0 投票
2 回答
1009 浏览

mfc - 如何在 MFC 中使用 CHtmlEditCtrl 执行缩放

谁能帮我在 CHtmlEditCtrl 上执行缩放?

我在 CHtmlEditCtrl 上显示了我的 html 文档。现在我希望我的编辑控件以不同的缩放级别显示相同的 html 文档。我在 InternetExplorer8 中看到了这个功能。现在我需要将此缩放功能添加到我的 MFC 应用程序中。

0 投票
1 回答
316 浏览

windows - ShowHTMLDialog 和按钮样式

我使用 win32 ShowHTMLDialog 函数在我的应用程序中显示一个包含一些标准 HTML 按钮的 HTML 弹出窗口。但是由于某些原因,这些按钮的呈现方式与 IE 中的不同:它们不是圆角的,也没有 3D 效果。

有没有办法以编程方式改变它并获得类似于 IE 渲染的东西?(这有点奇怪,因为我认为在这两种情况下都使用了三叉戟......)

谢谢。

0 投票
2 回答
1358 浏览

mshtml - 使用mshtml设置contentEditable,防止选择div

我当前的项目涉及使用文档编辑器,无论好坏,它都是使用 mshtml 实现的,并将 contentEditable 设置为 true。我们当然正在考虑用其他东西替换这个设置,但目前假设它不是一个选项。

万一这很重要,我们正在使用 VS 2008 (.Net 3.5) 和 C# 执行此操作:

我们希望将大部分结构编辑隐藏在 UI 后面,但让用户以任何他们喜欢的方式编辑文本。当我们添加具有多种样式中的任何一种的 div 时,就会出现问题:

(添加一个 body 标记来模拟我们正在以编程方式执行的操作,因此您可以在 IE 中进行测试,但请记住我们正在使用 C#/.Net/VS。)

这有两个问题:

  1. 用户的第一次点击选择了 div。我们希望点击直接转到文本,并且永远不要让用户看到调整大小的句柄。
  2. 如果用户将光标放在 Other Text 中,然后尝试使用键盘移动到 div 文本,则会被阻止。当您在它之外四处移动时,该 div 被视为一个字符。

那么,有效地,有没有办法让 div 表现得像一个背景装饰,但它周围的一切仍然是可编辑的?这个 html 是完全内部的,所以我们可以用它做任何我们喜欢的事情。所以 div 本身并不重要。重要的是我们:

  • 包含多个 P 或其他标签
  • 直观地向用户展示所有包含的 P 或其他标签都是一组的一部分,就像当前 div 上的边框和背景颜色这样的样式现在完成了。

这个 SO 问题让我担心我们目前的设置无法实现我想要的,但我要求帮助其他遇到类似问题的人。稍后我将添加一些我们提出的不完美的解决方案。

可能与否,感谢您的任何想法。

0 投票
2 回答
602 浏览

.net - 寻找一个好的 HTML 解析器,它将提供类似 offsetHeight 的值

我有一个项目需要我将 HTML 文档作为字符串加载并解析它。我正在尝试确定哪个 HTML 节点将超过页面的高度 (8.5x11),因此我可以在它之前插入一个“page-break-after”。这将通过我正在制作的 .NET dll 完成。

我尝试过使用 mshtml dom。将字符串值加载到其中并不容易,当我确实设法完成此操作时,offsetHeight (等)属性总是返回零。我发现完成这项工作的唯一方法是将 HTML 保存到磁盘,通过 SHDocVw.InternetExplorer 加载它,然后将其传递给 mshtml dom。

我假设除非 HTML 由 SHDocVw“渲染”,否则我没有要报告的 mshtml 的 offsetHeight 信息,因为这是基于屏幕像素的。我可能是错的。

我目前的代码如下:

我有两个目标。#1 是关键,#2 是理想的。

1) 从字符串加载 HTML,并且上面的代码仍然有效。

2) 理想情况下,找到一个可以做同样事情的 .NET 组件。我不喜欢依赖 .NET 中的 COM 组件,除非我别无选择。

0 投票
2 回答
2384 浏览

html - 如何在 MSHTML 中设置整个 HTML?

如何在 MSHTML 中设置整个 HTML?

我正在尝试使用此作业:

但我得到了错误:

“此操作的目标元素无效”

我也尝试过使用

但是这个表单只在正文部分添加了 HTML,我需要替换所有的 HTML 源。
有人知道我是怎么做到的吗?

提前致谢。

0 投票
1 回答
2123 浏览

.net - 如何设置 Webbrowser 控件的 Content-Type?

是否可以在 webbrowser 控件中设置文档的 Content-Type?

例如,如何使用 DocumentText 在 Web 浏览器控件中显示呈现为 XML 的 XML 文档?

0 投票
1 回答
1671 浏览

encoding - IWebBrowser:从流中加载 html 时如何指定编码?

使用Microsoft 提供的示例代码中的概念,使用 Web 浏览器的IPersistStreamInit接口将 HTML 内容从IStream加载到IWebBrowser :

伪代码:

如何在 IStream 中指定 html 的编码?IStream 将包含一系列字节,但问题是这些字节代表什么?例如,它们可以包含以下字节:

  • 每个字节代表当前 Windows 代码页中的一个字符(例如 1252)
  • 每个字节可以代表 ISO-8859-1 字符集中的一个字符
  • 字节可以表示 UTF-8 编码的字符
  • 每 2 个字节可以代表一个字符,使用 UTF-16 编码

在我的特殊情况下,我为 IWebBrowser 提供了一个包含一系列双字节字符(UTF-16)的 IStream,但浏览器(错误地)认为 UTF-8 编码有效。这会导致乱码。

解决方法

虽然问题询问如何指定编码,但在我的特定情况下,仅使用 UTF-16 编码,有一个简单的解决方法。添加 0xFEFF 字节顺序标记 (BOM) 表示文本是 UTF-16 unicode。即然后使用正确的编码并正确显示文本。

当然,如果文本被编码,那将不起作用,例如:

  • UCS-2
  • UCS-4
  • ISO-10646-UCS-2
  • UNICODE-1-1-UTF-8
  • UNICODE-2-0-UTF-16
  • UNICODE-2-0-UTF-8
  • 美国ASCII
  • ISO-8859-1
  • ISO-8859-2
  • ISO-8859-3
  • ISO-8859-4
  • ISO-8859-5
  • ISO-8859-6
  • ISO-8859-7
  • ISO-8859-8
  • ISO-8859-9
  • WINDOWS-1250
  • WINDOWS-1251
  • WINDOWS-1252
  • WINDOWS-1253
  • WINDOWS-1254
  • WINDOWS-1255
  • WINDOWS-1256
  • WINDOWS-1257
  • WINDOWS-1258