<bgsound> 在 Internet Explorer 设计模式下插入



我使用此代码插入<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 -->

  • 等评论也是如此
  • 我找不到使用insertAdjacentHTMLinnerHTML插入标签的方法。我能做的最好的是将声音标签包裹在其他标签中 - 如果这样做,则在插入时会播放声音,但仍然没有源。最后,我将其直接插入到生成的HTML中,然后将HTML保存到磁盘(我标记了添加了声音,并且在保存HTML之前,我将其插入了HTML而不依赖MSHTML)。

  • 切换到标准模式,例如通过使用注册表条目FEATURE_BROWSER_EMULATION正确插入标签,但无法在某些版本的Internet Explorer上使用(我相信最低版本将是IE9的工作),因此它的灵活性较小。

我没有找到解决方案,但至少我有一些解决方法。也许将来对某人有帮助。

最新更新