Показать сообщение отдельно
  #1 (permalink)  
Старый 29.07.2009, 21:35
Интересующийся
Отправить личное сообщение для Diem Посмотреть профиль Найти все сообщения от Diem
 
Регистрация: 24.07.2009
Сообщений: 15

evalScripts без regexp и eval
Есть ли какой нибудь природный способ выполнить 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 ?
Ответить с цитированием