Delphi 在Internet Explorer设计模式下插入

Delphi 在Internet Explorer设计模式下插入,delphi,webbrowser-control,twebbrowser,tembeddedwb,Delphi,Webbrowser Control,Twebbrowser,Tembeddedwb,我使用此代码插入标记 忽略一秒钟,这是过时的。我使用它是因为在IE6中它是有效的 但在执行上述操作后,HTML源代码中不存在任何内容。起初,我认为上述代码有问题,直到我尝试了以下方法: EmbeddedWB.Doc2.body.insertAdjacentHTML('afterBegin','<p>chimes.wav</p>'); 在上面,它正确地插入标记,正好在后面。那么为什么它不会插入呢 另外,如果我插入标签,会发生一些奇怪的事情: EmbeddedWB.Doc2

我使用此代码插入标记

忽略一秒钟,这是过时的。我使用它是因为在IE6中它是有效的

但在执行上述操作后,HTML源代码中不存在任何内容。起初,我认为上述代码有问题,直到我尝试了以下方法:

EmbeddedWB.Doc2.body.insertAdjacentHTML('afterBegin','<p>chimes.wav</p>');
在上面,它正确地插入标记,正好在后面。那么为什么它不会插入呢

另外,如果我插入标签,会发生一些奇怪的事情:

EmbeddedWB.Doc2.body.insertAdjacentHTML('afterBegin','<audio src="chimes.wav">some audio</audio>');
在这个源代码之后,我看到的只是一些没有开头标签的音频

我开始怀疑是否因为我处于设计器模式,所以上面的操作不起作用,这是否可能是它无法插入的原因?也尝试插入一些其他标记。。。例如,评论也不起作用


编辑:后来我在注册表中尝试了FEATURE_BROWSER_EMULATION,设置为11001 0x2AF9 Internet Explorer 11模式后,两个和标记都从编辑模式正确插入。但在旧模式下肯定是可能的,不是吗?

在浪费了很多时间之后,我发现了一些东西:

Internet Explorer控件在使用insertAdjacentHTML甚至innerHTML时会删除它认为无效的标记。据我所知,似乎没有一种方法可以插入控件不会尝试验证的任何自定义HTML代码。在我测试它的IE6中,它认为和标记是无效的,所以它会删除它们。它不应该这样做,但它确实这样做了。类似这样的评论也是如此

我找不到使用insertAdjacentHTML或innerHTML插入标记的方法。我所能做的最好的事情就是将声音标签包装在其他标签中——如果我这样做,声音在插入时会播放,但它仍然不在源代码中。最后,在将HTML保存到磁盘之前,我将其直接插入生成的HTML中,我标记了添加的声音,在保存HTML之前,我将其插入HTML中,而不依赖MSHTML

切换到标准模式,例如,通过使用注册表项功能\u浏览器\u仿真正确插入标记,但在某些版本的Internet Explorer上不起作用。我相信最低版本为IE9,因此它的灵活性较低

我没有找到解决办法,但至少我有一些变通办法。也许它对将来的人有帮助

EmbeddedWB.Doc2.body.insertAdjacentHTML('afterBegin','<audio src="chimes.wav">some audio</audio>');