Исполнение кода javascript

neov
На сайте с 15.02.2005
Offline
95
610

Подскажите пожалуйста, можно ли в div вставить js-код после загрузки страницы (например при обработке какого-нибудь события) так, чтобы этот код выполнился как javascript.

пример:

<input name="test" onchange="preview();">

<div id="code"></div>

<script type="text/javascript">
function preview() {
var t=document.getElementById('code');
t.innerHTML = 'alert("test")';
}
</script>

В данном случае алерт не сработает а просто выведется как код. Можно ли сделать, чтобы алерт сработал.

Дмитрий
На сайте с 23.08.2006
Offline
199
#1

<script type="text/javascript">

function preview() {

alert("test");

}

preview();

</script>

:)))

Разрабатываю и автоматизирую на php http://jonnyb.ru/
neov
На сайте с 15.02.2005
Offline
95
#2

To JonnyB: 🚬

neov добавил 01.04.2008 в 10:28

Решение оказалось простое:

var t = document.getElementById('code');

var s=document.createElement("script");
s.src="test.js";
t.appendChild(s);
Коля Дубр
На сайте с 02.03.2005
Offline
153
#3

neov, что-то Вы не то делаете, я чувствую.

По идее должно бы работать так:


window.onload = function () {
var myscript = document.getElementById('mydiv').appendChild(document.createElement('script'));
myscript.setAttribute('type', 'text/javascript');
myscript.innerHTML = 'alert("test alert")';
}

Но, блин, IE выполнять динамически созданный код отказывается. Ну и хрен с ним, ибо затея сама по себе сомнительна ;) Расскажите, зачем оно Вам понадобилось, наверняка можно сделать проще.

Разрабатываю общую шину (http://habrahabr.ru/company/floxim/blog/268467/) помаленьку. ...а еще у меня есть бложек (http://www.blogovo.ru/).
Kolyaj
На сайте с 28.03.2006
Offline
69
#4
Коля Дубр:
Но, блин, IE выполнять динамически созданный код отказывается.

eval .

neov
На сайте с 15.02.2005
Offline
95
#5

Идея состоит в следующем. Есть яваскрипт, который зависит от набора параметров. На страничке есть форма, в которой пользователь задает параметры и в отдельном диве загружается этот яваскрипт после каждого изменения формы по событию onchange (вообщем аналог php-формы).

Для тестового скрипта вроде все работает. Для реального не получается. Происходит очистка окна и бесконечная загрузка.

Почитав аналогичные темы, пришел к выводу, что очистку делает document.write() так как его нельзя использовать после загрузки документа. Сейчас пробую заменить вызов на приведенный мной выше.

Kolyaj
На сайте с 28.03.2006
Offline
69
#6
neov:
в отдельном диве загружается этот яваскрипт после каждого изменения формы

JS-файлам все равно куда загружаться, хоть в див, хоть не в див. Они исполняются на странице. И зачем каждый раз загружать его заново?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий