Создание тега <style>в JavaScript, затем доступ к cssRules - PullRequest
0 голосов
/ 05 февраля 2011

Я действительно надеюсь, что это не глупый вопрос ... Последние несколько часов я бью головой об стену, пытаясь ее решить.

По сути, это дополнительный вопрос к Как создать тег , в другом месте в переполнении стека. Методы, описанные Томом и Майклом, прекрасно работают в IE, Firefox и Opera, и почти работают в Chrome и Safari. Проблема в том, что в Chrome и Safari для таблицы стилей не создается свойство "cssRules"! Другие браузеры создают свойство "cssRules" (ну, IE создает свойство "rules", но вы уже знали об этом).

Может кто-нибудь объяснить, как создать таблицу стилей для iframe, которая даст мне свойство "cssRules" в Chrome и Safari?

Мое намерение состоит в том, чтобы добавить таблицу стилей в iframe, который я создал на своей веб-странице, поскольку, похоже, он не поставляется с ним. Позже я надеюсь скопировать некоторые стили из таблицы стилей вмещающего документа в таблицу стилей iframe, но я пока не получил этого. Если кто-нибудь узнает о каких-либо предостережениях, которые могут быть предприняты после того, как я решу вышеуказанную проблему, я был бы заранее благодарен.

1 Ответ

0 голосов
/ 05 февраля 2011

Я тестировал в 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 становится красным.

PS Извините, если повторяется.Я только сейчас открыл ссылку в вашем сообщении на другую тему

...