【发布时间】:2017-12-24 22:03:59
【问题描述】:
我们的应用程序使用嵌入式 IE 控件,我们注意到设置:
document.body.innerHTML 到 <P><HR> 会导致 OLE 异常 "Unknown runtime error"。
我可以在 IE 浏览器本身(IE 版本 8)中重现这一点。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Untitled</title>
<script>
function load(){
// alert(document.body.innerHTML)
document.body.innerHTML = '<P><HR>';
}
</script>
</head>
<body onload="load()">
</body>
</html>
如果 body.innerHTML 设置为 <P></P><HR> 一切都很好。但是 HTML 字符串来自数据库的问题。为什么会发生这种情况,如何解决?
编辑: 代码在 IE11 上运行良好。但问题存在于使用 IE8 的系统上。无论我是否更改 FEATURE_CONTROL_BROWSER_EMULATION 键。 IE8有什么可以做的吗?
【问题讨论】:
-
我无法重现此问题。你的代码对我来说很好。您使用 Web 浏览器控件的后端语言是什么?
-
@AlexanderRyanBaggett,我使用 Delphi (TWebBrowser)。您是否在真正的 IE 浏览器中尝试过 HTML 代码?如果是,哪个版本?
-
我实际上是在 .net Web 浏览器控件中完成的。是的,它适用于 Win10/IE11,但我必须允许通过鼠标单击阻止内容。
-
使用 IE11 浏览器通过 f12 开发工具对您的页面进行故障排除。首先进入工具>互联网选项>高级选项卡,选中“始终记录开发者控制台消息”。保存更改。当您使用 f12 开发工具加载页面时...控制台选项卡将列出标记错误...您使用的 DTD 无效(使用 代替。开发工具的仿真选项卡会告诉您哪个仿真模式 IE(浏览器正在使用).. 我希望 IE 将显示 IE11 仿真模式(默认)但是您的 Delphi 托管的 WBC 将使用 IE7 或 IE5 仿真。
-
@AlexanderRyanBaggett,我在 XP/Win7 中测试了上面的 HTML 代码。两者都安装了IE8。这两种情况我都可以重现。
标签: html internet-explorer dom webbrowser-control