我使用此代码插入<bgsound>
标签。
EmbeddedWB.Doc2.body.insertAdjacentHTML('afterBegin','<bgsound src="chimes.wav">');
一秒钟忽略<bgsound>
已过时。我正在使用它,因为在IE6中它起作用。
,但是在上述操作后,HTML源中没有任何内容。起初,我认为上述代码有问题,直到我尝试过:
EmbeddedWB.Doc2.body.insertAdjacentHTML('afterBegin','<p>chimes.wav</p>');
在上面的情况下,在<body>
之后正确插入<p>
标签。那么,为什么它不会插入<bgsound>
?
另外,如果我插入 <audio>
标签:
EmbeddedWB.Doc2.body.insertAdjacentHTML('afterBegin','<audio src="chimes.wav">some audio</audio>');
之后,我在源中看到的只是some audio</audio>
,而没有开头标签。
我开始怀疑上述是否因为处于设计师模式而无法使用,这是否可能是因为它不会插入<bgaudio>
?也尝试插入其他标签...例如,评论也不起作用(<!-- comment -->
)。
编辑:后来我尝试了FEATURE_BROWSER_EMULATION
在注册表中,并在设置为11001(0x2af9 Internet Explorer 11模式)<audio>
和<bgsound>
标签都从编辑模式正确插入。但是在较旧的模式下必须有可能吗?
在很多浪费的时间之后,我发现了一些事情:
-
Internet Explorer控制条标签,它认为使用
insertAdjacentHTML
甚至innerHTML
时认为这是无效的。似乎没有一种方法(我知道)插入任何自定义的HTML代码,该代码将无法尝试验证这些代码。在我正在测试的IE6中,它认为<bgsound>
和<audio>
标签无效,因此可以剥离它们。对于<bgsound>
,它不应该这样做。诸如<!-- comment -->
。
等评论也是如此 我找不到使用
insertAdjacentHTML
或innerHTML
插入标签的方法。我能做的最好的是将声音标签包裹在其他标签中 - 如果这样做,则在插入时会播放声音,但仍然没有源。最后,我将其直接插入到生成的HTML中,然后将HTML保存到磁盘(我标记了添加了声音,并且在保存HTML之前,我将其插入了HTML而不依赖MSHTML)。切换到标准模式,例如通过使用注册表条目
FEATURE_BROWSER_EMULATION
正确插入标签,但无法在某些版本的Internet Explorer上使用(我相信最低版本将是IE9的工作),因此它的灵活性较小。
我没有找到解决方案,但至少我有一些解决方法。也许将来对某人有帮助。