- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们在 Delphi 中使用标准 TWebbrowser 组件,该组件在内部使用 mshtml.dll。另外,我们使用注册表来确保页面使用新的渲染引擎( Web-Browser-Control-Specifying-the-IE-Version 、 MSDN: FEATURE_BROWSER_EMULATION )进行渲染。因此我们使用 IE 10 的渲染,但使用 ie 8 到 ie 11 得到相同的结果。
使用 MSHTML (IE7) 的标准渲染机可以正常工作,但由于新的渲染选项,我们需要 MSHTML 的新渲染。
我们使用控件的设计模式来使用户能够对文档进行更改:
var
mDocument: IHTMLDocument2;
begin
mDocument := ((ASender as TWebBrowser).Document as IHTMLDocument2);
mDocument.designMode := 'on';
现在我们遇到了以下问题:当我们使用 IHTMLTxtRange.pasteHTML(...) 插入 HTML 代码时,一些空格被替换为
procedure TForm1.BT_PasteHtmlClick(Sender: TObject);
var
mDoc2: IHTMLDocument2;
mOvSel:IHTMLSelectionObject;
mRange: IHTMLTxtRange;
mHtml: string;
begin
/// Reproduzierbarer Fehler bei PasteHtml
/// Leere Zellen und falsche Umbrüche.
mDoc2 := WB_Test.Document as IHTMLDocument2;
mOvSel := mDoc2.selection as IHTMLSelectionObject;
mRange := mOvSel.CreateRange() as IHTMLTxtRange;
mHtml := '<TABLE width="100%" border="1" cellspacing="0" cellpadding="0"> <TBODY> <TR> <TD>Falsche Zellen werden erstellt, wo nur diese eine sein sollte!</TD></TR></TBODY></TABLE>' + sLineBreak +
'<p>Falsche Umbrueche ' + sLineBreak +
'wo keine sein sollten durch CRLF im Html-Code!</p>' + sLineBreak;
mRange.pasteHTML(mHtml);
end;
查看插入的代码,TABLE、TBODY、TR 和 TD 标记之间的空格已转换为 。错误插入的HTML代码是:
<TABLE width="100%" border="1" cellspacing="0" cellpadding="0">
<TBODY>
<TR>
<TD>Falsche Zellen werden erstellt, wo nur diese eine sein
sollte!</TD></TR></TBODY></TABLE><BR>
<P>Falsche Umbrueche <BR>wo keine sein sollten durch CRLF im
Html-Code!</P>
编辑:我们从以下 HTML 开始:
<html>
<body>
</body>
</html>
插入后得到:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv="Content-Type" content="text/html; charset=windows-1252">
<META name="GENERATOR" content="MSHTML 10.00.9200.16540"></HEAD>
<BODY>
<TABLE border="1" cellspacing="0" cellpadding="0">
<TBODY>
<TR>
<TD>Tabelle mit<BR>einem Text!</TD></TR></TBODY></TABLE><BR>
<P>Falsche Umbrüche durch zu viele Leerzeichen</P></BODY></HTML>
最佳答案
这可能是设计使然。符合HTML specifications ,HTML 代码中的任何空格都应被视为单个空格实例(<pre>
标签内除外)。为了在设计模式下键入两个或多个空格时提供额外的单词分隔,IE 会插入
相反,HTML 实体。
关于delphi - MSHTML PasteHTML() 产生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27018242/
在我的应用程序中,我有一个嵌入式 MSHTML 控件。问题是我无法将焦点设置到此控件。我可以单击、选择、按下按钮等,但它不会因此接受键盘输入和鼠标滚轮通知。即使在控件上单击鼠标左键也不会设置焦点。 (
我在 Windows 7 中使用 IE11。然后我在 C# 项目 c:\Windows\System32\mshtml.tld 中添加了一个引用并尝试获取 mshtml.IHTMLDocument6
我在将 mshtml.HTMLDocumentClass 转换为 mshtml.IMarkupServices 时遇到问题 IHTMLDocument2 doc = new HTMLDocumentC
我有点困惑,也许你可以帮助我。 我有 mshtml.dll(8.0 版)和 Microsoft.mshtml.dll(7.0 版) 如果我添加对 WPF 项目的引用并尝试添加 mshtml.dll,它
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我需要在 Windows 10(最新版本)下使用 VS2017 构建旧的 .NET 项目的小帮助。 我的问题是我需要以某种方式引用的“MSHTML”组件。通过 References - Add - C
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
目前,我正在使用 MSHTML 组件将 HTML 编辑器嵌入到 C++ WinAPI 应用程序中。 我已设置好所有内容(激活编辑模式、更改字体等),但现在我必须支持插入图像。 MSHTML 已经内置了
我们在 Delphi 中使用标准 TWebbrowser 组件,该组件在内部使用 mshtml.dll。另外,我们使用注册表来确保页面使用新的渲染引擎( Web-Browser-Control-Spe
我有一个使用 WatiN 的 C# 程序。它在我的开发 Windows 7 中编译并运行良好。但是,当我将程序复制到 Azure 中的 Windows 2012 数据中心时,当应用程序尝试启动 Int
我有一个使用 WatiN 的 C# 程序。它在我的开发 Windows 7 中编译并运行良好。但是,当我将程序复制到 Azure 中的 Windows 2012 数据中心时,当应用程序尝试启动 Int
我有一个 Haskell 库,它可以获取一个普通的 Web 应用程序,在本地服务器上运行它,然后使用 QtWebkit 打开一个显示该应用程序的窗口。 code to interface with Q
我在 mshtml.IHTMLElement 对象中有一个 DOM 元素(引用 here)。我想通过转到该元素的父元素然后转到该元素的下一个兄弟元素然后获取该元素的第二个子元素来获取“可导航到”的 D
我正在使用 axWebBrowser,我需要制作一个脚本,该脚本在列表框的选定项目发生更改时起作用。 在默认的 webBrowser 控件中,有一个类似的方法; WebBrowserEx1.Docum
我正忙于用 C# 编写 BHO(浏览器帮助程序对象),我需要将事件处理程序附加到输入元素上的所有 onclick 事件。我没有使用 visual studio 提供的内置网络浏览器,而是启动安装在客户
我想使用 MSHTML 将用户焦点设置在一个文本元素上,到目前为止我已经给出并尝试过的方法都不起作用。 CComPtr field; field->put_value( .. ); // I hav
我们的应用程序使用的是 mshtml。由于 mshtml 中众所周知的问题,该 dll 导致我们的应用程序无法正常退出,因为我们没有在用户的机器上安装更新的浏览器。我们只是使用他们已有的东西。 Set
我在应用程序中嵌入了一个基于 MSHTML 的控件,ContentEditable 模式用于编辑其中的文档。 HTML 文档的主体最初包含以下几行: 插入符号位于文档的开头,即第一个 DIV 元素
我在使用 MSHTML 从该网站截取一些数据时遇到问题组件。我的 WPF 窗体上有一个 WebBrowser 控件。我检索 HMTL 元素的代码位于 WebBrowser LoadCompleted
我正在使用 MSHTML API来自 C# 4.0 和运行代码的逻辑不是问题。然而,由于 MSHTML 和/或 COM 接口(interface)的设计方式,编写代码是一件很痛苦的事情。具体来说,应该
我是一名优秀的程序员,十分优秀!