выполнение произольного кода javascript
Допустим это строка текста(кода), я хочу его выполнить, есть ли какая-то команда для этого?
Код:
document.write('<script type="text/javascript">'+str+'</script>');
где str - строка кода, которую нужно выполнить.
А еще делают eval() :)
Вот только о том ли автор темы спрашивает? Что понимаем под "произвольный код"? У меня с этим словосочетание не очень хорошие ассоциации.... выход из песочницы?
А как через innerText?
Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
</head>
<body>
<script type="text/javascript" id="script">
var code = 'alert("Hello Word!")';
function foo() {
document.getElementById('script').innerText = code;
};
</script>
<input type="button" value="ooo" onclick="foo()">
</body>
</html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
</head>
<body>
<script type="text/javascript" id="script">
var code = 'alert("Hello Word!")';
function foo() {
document.getElementById('script').innerText = code;
};
</script>
<input type="button" value="ooo" onclick="foo()">
</body>
</html>
Работает только в опере.
eval или способ с print.... я думаю самые 2 простых способа без замудрённостей...
Способ с print (document.write, как я понял) работает только при формировании страницы. После onload он убьет весь документ.
ну да, так и есть
Цитата: vasa_c
Работает только в опере.
Угу. С ходу я только этот пример и вспомнил. Однако все равно через DOM можно динамически подгружать JavaScript код как исполняемый. Причем есть и кроссбраузерное решение, я делал. Только где-то в черновиках видно валяется, ибо что-то не нашел.
А вообще этот вопрос поднимали уже, и вроде как даже на этом форуме.