Приветствую, Булчане.
Есть небольшая проблемка. Перепиливаю систему окошек у себя на сайте, всё красиво и работает. Но, мне не нравится что содержимое окошек подготавливается сразу при загрузке страницы, даже если я эти окошки не буду открывать, и, собственно, сама страница весит дюже дофига. Решил сделать запрос содержимого окошек ajax'ом при открытии каждого окошка (то что такое окошко будет открываться с временнЫм лагом при тормозном интернете - за проблему не считаю пока что).
Собственно, всё бы хорошо, но у меня на запрашиваемой ajax'ом странице поля ввода (input обыкновенные) создаются через функцию js (допустим, createInput с какими то там параметрами). Я понимаю что не есть хорошо, гораздо проще нормально html-инпутов навешать. Но так есть (остаток от предыдущего программиста проекта), и, выпилить всё это безобразие времени не хватает.
Так вот. Как можно эти js функции выполнить внутри страницы, которую я спрашиваю аяксом?
Схематичный пример:
страничка
window1.php:
...
<script type="text/javascript" src="windows.js"></script>
//в этом js-файле описана функция createInput(parent, id);
//первый параметр - куда добавлять инпут (добавляется через innerHTML)
//второй параметр - id самого инпута
...
<div id="div1">
<script type="text/javascript">
createInput("div1", "inputForDiv1");
</script>
</div>
<div id="div2">
<script type="text/javascript">
createInput("div2", "inputForDiv2");
</script>
</div>
...
страничка где работаю аяксом:
<script type="text/javascript">
jQuery.ajax({
type: "GET",
url: "window1.php",
success: function (data){
document.getElementById('windowNetworkContent').innerHTML = data;
document.getElementById('inputForDiv1').value = "azazaza";
}
});
</script>
Полученый html вставляется как надо (за исключением инпутов создаваемых js-ом), и на
document.getElementById('inputForDiv1').value = "azazaza";
вполне ожидаемо выскакивает ошибка отсутствия элемента (js ведь не выполнился внутри ajax-запроса).
Каким способом можно запустить этот js внутри запроса?
Eval не предлагать. Даже не беря во внимание небезопасность его использования, его всё равно использовать не получится - внутри window1.php есть код php, на котором Eval сразу же и умирает.