Есть ли какой нибудь природный способ выполнить js скрипты при обновлении содержимого DOM элемента.
Если я не ошибаюсь во всех фрэймворках для этих целей используют Regexp + eval
Вот такой пример:
<div id="div">
DIV
</div>
<script>
function test1() {
var divNode = document.getElementById('div');
var newNode = divNode.cloneNode(false);
newNode.innerHTML = 'TEST1<script>alert("ok")<\/script>'
divNode.parentNode.replaceChild(newNode, divNode);
}
function test2() {
var divNode = document.getElementById('div');
divNode.innerHTML = 'TEST2';
var scriptNode = document.createElement('script');
scriptNode.innerHTML = 'alert("ok")';
divNode.appendChild(scriptNode);
}
function test3() {
var divNode = document.getElementById('div');
divNode.innerHTML = 'TEST3<script>alert("ok")<\/script>';
}
</script>
<a href="" onclick="test1(); return false">Test1</a>
<a href="" onclick="test2(); return false">Test2</a>
<a href="" onclick="test3(); return false">Test3</a>
test1 и test2 работают в FF
test2 работает в Opera
В IE ничего не работает, test2 - выдаёт ошибку
У кого какие мысли на счёт того, чтоб реализовать что то подобное с test1 или test3, чтобы к примеру делать update элемента ajax-ом c выполнением скриптов содержащихся в входном html ?