使用jQuery更改<;的所有实例;对象>;至<;iframe>;为IE提供支持

使用jQuery更改<;的所有实例;对象>;至<;iframe>;为IE提供支持,jquery,iframe,object,internet-explorer,Jquery,Iframe,Object,Internet Explorer,我想知道,当加载到IE8及以下版本时,是否可以使用jQuery将站点上的所有标记切换为标记。本质上,这将允许页面XHTML1.1有效,并且不必一直进行双重编码,从而无需花费太多时间关注非标准浏览器 data=属性需要更改为src=,我想插入frameborder=“0”,并且标记的所有样式值也需要为标记设置 我在这里的目标不是就s与s进行辩论,我只是认为这将是一个巨大的tmie节约,并鼓励正确、严格的xhtml编码实践 谢谢你的意见 有关如何更改元素类型的基本概述,请参见(不知道它是否能在XHT

我想知道,当加载到IE8及以下版本时,是否可以使用jQuery将站点上的所有
标记切换为
标记。本质上,这将允许页面
XHTML1.1
有效,并且不必一直进行双重编码,从而无需花费太多时间关注非标准浏览器

data=
属性需要更改为
src=
,我想插入
frameborder=“0”
,并且
标记的所有
样式值也需要为
标记设置

我在这里的目标不是就
s与
s进行辩论,我只是认为这将是一个巨大的tmie节约,并鼓励正确、严格的
xhtml
编码实践


谢谢你的意见

有关如何更改元素类型的基本概述,请参见(不知道它是否能在XHTML中正常工作,但它可能会正常工作),但我认为这根本不是一个好主意。我可以看到,它会导致旧机器(IE6在旧机器上运行)的延迟,显然,当禁用JavaScript时,它将无法工作。所有这些都是为了实现有效的代码?在我看来,这不是个好主意

在这样做之前,如果代码在任何情况下都是有效的,我会考虑在服务器端提供不同的代码到IE6。

< P>我不知道你是否可以改变DOM元素类型,但是你总是可以创建一个新的iFrRAME元素,并删除旧的元素。 类似(注意:未经测试!)

$(“对象”)。每个(函数(){
var obj=$(本);
$(“”)。属性({
src:obj.attr(“数据”),
样式:对象属性(“样式”),
框架边框:0
})
.在(obj)之后;
obj.remove();
});

如果在修改客户端之前输出不一致,你真的能称之为严格的xhtml吗?@David他想反过来做:他想输出严格的HTML,然后在加载后进行IE6修复。因为我所做的不是缺少JavaScript支持的问题。另外,我发现现在很少有设备没有JavaScript。过去几年所有的新手机都支持JavaScript,而且大多数人的手机使用时间都不超过2年。我会查看你发给我的链接,谢谢。我在测试你的代码时遇到了问题。它不会将创建的iframe放置在对象之后。因此,在对象被移除后,什么都没有留下。
$("object").each(function() {
    var obj = $(this);
    $("<iframe/>").attr({
        src: obj.attr("data"),
        style: obj.attr("style"),
        frameborder: 0
    })
    .after(obj);

    obj.remove();
});