2009-06-11 42 views
0

我有标记在我的页面,其中包括标签:Internet Explorer是否从DOM中删除<object>元素?

<body> 
    <object codebase="blah" codetype="text/blah"> 
    <param name="name" value="value"/> 
    <div>Some Markup</div> 
    </object> 
</body> 

的想法是让浏览器显示<div>默认的内容,但如果一个特殊的JS库存在,它会发现所有的元素并转换它关心的人(基于@codetype)。

这适用于Firefox和WebKit,但在IE中失败,因为该浏览器似乎剥离外部<object>元素,并且仅留下内部<div>。也就是说,在资源管理器下,从上述标记中获得的DOM看起来像这样:

<body> 
    <div>Some Markup</div> 
</body> 

这是有记录的行为?有没有什么办法可以让IE保持DOM中的<object>元素不变? (我目前正在使用IE7进行测试。)

注意:这不适用于嵌入Flash或类似的多媒体。

回答

2

嗯...根据MSDN上的帖子,版本7之前的Internet Explorer会从DOM中删除任何<object>的内容无法呈现的内容。

我想这使得我的问题成为22。我可以添加一些数据,这些数据会使IE呈现<object>(例如使其显示1像素图像),这将启用DOM中的元素,但这会隐藏“后备”标记。

0

要嵌入对象,我建议使用类似swfobject这样的库,因为是的,IE确实使用这个标签做了一些时髦的事情。

+0

谢谢,但我不是想嵌入Flash内容 – levik 2009-06-11 15:41:12

0

如果你尝试创建一个对象,并且它不能被实例化,如果对象标签没有最终成为DOM的一部分,它并不会让我感到惊讶。