jquery将所有样式表插入iframe

Mar*_*ark 6 javascript iframe jquery wysiwyg

如何将所有父窗口的样式表插入到iframe的头部(samedomain)?

我尝试的代码基于类似的问题:

function () {
    var d = frames[0].document;
    var stylesheets = $("link").outerhtml;
    d.open();
    d.write(
    '<html><head>'+
    stylesheets + 
    '<style type="text/css">'+
    '<\/style><\/head><body><\/body><\/html>'
    );
    d.close();
}
Run Code Online (Sandbox Code Playgroud)

显然,这不适用于IE之外.提前致谢.

编辑:根据安东尼的回答尝试:

    $("link[type='text/css']").each(function() {
        var stylesheet = $(this).clone();                                    
        $("iframe").contents().find("head").append(stylesheet);
    });
Run Code Online (Sandbox Code Playgroud)

Pet*_*ese 3

所选答案的一个问题是它使用.html(),它仅返回该元素的内部 html 内容,而不是元素本身。这是一个可行的解决方案:

$("link[type='text/css']").clone().appendTo($("iframe").contents().find("head"));
Run Code Online (Sandbox Code Playgroud)

  • HTML5 中样式表链接标记的 type 属性是可选的,最好使用 `$("link[rel='stylesheet']")`。 (2认同)