После очистки документа document.write (ln) не будет работать? - PullRequest
0 голосов
/ 30 августа 2011

как в заголовке сказано, что у меня проблема, вот пример:

...    
<script>
document.body.innerHTML = "";
document.write("<scr"+"ipt>alert(1);<\/scr"+"ipt>");
</script>

После очистки документа я хочу написать в нем некоторый код JS (и, конечно, хочу, чтобы его выполняли). Я пробовал другие методы, но кажется, что они не будут работать (и у меня есть браузер Firefox 6.0).

Кто-нибудь знает решение или рабочую альтернативу для этой проблемы? Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 30 августа 2011

Не используйте document.write().Просто не надо.(См. Почему document.write считается «плохой практикой»? )


Попробуйте:

var text = 'alert(1);',
    script = document.createElement('script');
script.appendChild(document.createTextNode(text));
document.head.appendChild(script);
1 голос
/ 30 августа 2011

document.write работает только до загрузки DOM;document.body.innerHTML работает только после.

Попробуйте использовать document.body.appendChild для добавления нового текстового узла.

...