Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не работает функция в ответе запроса (https://javascript.ru/forum/jquery/44017-ne-rabotaet-funkciya-v-otvete-zaprosa.html)

MutanT_883 02.01.2014 02:35

Не работает функция в ответе запроса
 
Добрый день! Проблема в следующем:
Делаю ajax-запрос, в ответе содержится скрипт:
<div id='answer'></div>
<script type='text/javascript'> 
function gtoyt() {
document.getElementById("answer").innerHTML = "2223";
}
</script>
<input type='button' value='ok' onclick='javascript: gtoyt();'>

После получения ответа жму на кнопку, но ничего не происходит. Однако, если
<script type='text/javascript'> 
function gtoyt() {
document.getElementById("answer").innerHTML = "2223";
}
</script>

поместить в дочерний документ, откуда идет запрос, то скрипт срабатывает. Помогите с размещением javascript-функций в ответах ajax. В чем секрет?

danik.js 02.01.2014 02:55

Цитата:

Сообщение от MutanT_883
В чем секрет?

Секрет в том что при вставке скрипта через innerHTML, он не исполняется.

Смотри тест:

<body>
<script>
    var script = '<script>alert("!!!")<\/script>';
    document.body.innerHTML = script;
</script>
</body>


Ожидаемого алерта нет!

Тот же пример, но без использования innerHTML:


<body>
<script>
    var script = '<script>alert("!!!")<\/script>';
    document.write(script);
</script>
</body>

MutanT_883 02.01.2014 03:12

Что тогда делать?

MutanT_883 02.01.2014 13:48

Благодарю.

рони 02.01.2014 14:19

MutanT_883,
Цитата:

jQuery.getScript()

Делает запрос к серверу без перезагрузки страницы, с запросом javascript файла. При получении запрошенного файла, код внутри него будет автоматически выполнен.


Часовой пояс GMT +3, время: 00:09.