Html 在JavaScript中创建标记,然后访问cssRules

Html 在JavaScript中创建标记,然后访问cssRules,html,css,google-chrome,safari,stylesheet,Html,Css,Google Chrome,Safari,Stylesheet,我真的希望这不是一个愚蠢的问题……过去几个小时我一直在努力解决这个问题 这本质上是关于堆栈溢出的后续问题。Tom和Michael所描述的技术在IE、Firefox和Opera中非常有效,在Chrome和Safari中也几乎有效。问题是,在Chrome和Safari中,没有为样式表创建cssRules属性!其他浏览器创建了cssRules属性,也就是创建了rules属性,但您已经知道了 谁能解释一下如何为iframe创建一个样式表,在Chrome和Safari中为我提供cssRules属性 我的意

我真的希望这不是一个愚蠢的问题……过去几个小时我一直在努力解决这个问题

这本质上是关于堆栈溢出的后续问题。Tom和Michael所描述的技术在IE、Firefox和Opera中非常有效,在Chrome和Safari中也几乎有效。问题是,在Chrome和Safari中,没有为样式表创建cssRules属性!其他浏览器创建了cssRules属性,也就是创建了rules属性,但您已经知道了

谁能解释一下如何为iframe创建一个样式表,在Chrome和Safari中为我提供cssRules属性


我的意图是将样式表添加到我在网页中创建的iframe中,因为它似乎没有附带样式表。稍后,我希望将一些样式从随附文档的样式表复制到iframe的样式表中,但我还没有做到这一点。一旦我解决了上述问题,如果有人知道这样做的任何注意事项,我将提前表示感谢。

我已经在Firefox 3.6、Chromium 8、Opera 11和ubuntu 10.10中进行了测试

temp.html:

<style>
    body { background-color: blue; }
</style>

 <body>
    Hello
</body>
index.html:

<html>
<head>
    <script>
        function test(){
            // your new <style> tag
            var stl = document.createElement("style");
            // its content
            stl.innerHTML = "body { background-color: red}";

            // getting iframe
            var myIframe = document.getElementById("myiframe");

            // apply new CSS to iframe
            myIframe.contentWindow.document.
                    getElementsByTagName('head')[0].appendChild(stl);
        }
    </script>
</head>
<body>
    <iframe id="myiframe" src="temp.html"></iframe>
    <button onclick="test()">
</body>
</html>
单击该按钮时,iframe中的背景将变为红色


请注意,如果是重复的话,很抱歉。我只是在你的帖子中打开了另一个主题的链接

我说的是一个iframe,我在其中创建所有内容,而不是从另一个页面加载内容。这就是我想告诉你的……这个iframe没有src属性——我自己创建它的所有内容。另外,您的答案没有尝试访问样式表的cssRules属性,因此它没有解决这个问题。