Загрузка HTML-кода на страницу, содержащую скрипты

Иногда возникает необходимость обновить часть страницы.

Простейшее использование innerHTML здесь может не сработать, т.к. на загружаемой странице могут быть скрипты, изменяющие её содержимое. Вот тут Вам и поможет следующий код:

<script>
    var t='';
    // выделяем с загружаемой страницы все скрипты
    re1=new RegExp ("<script(.*)>((.|[\r\n])*)<\/script>","i");
    while((text=re1.exec(data))!=null){
        // на случай, если содержимое скрипта для валидности заключено в комментарий
        text[2]=text[2].replace('<!--',"").replace("//-->","");
        // если скрипт подгружает внешний файл, выделяем его имя и загружаем его
        if(text[1].indexOf('src=')>0){
            var re2=new RegExp ("src=[\'\"](.*)[\'\"]","i"); te2=re2.exec(text[1]);
            if(te2!=null)
                t=t+"\r\nLoadScript('"+te2[1]+"');";
        }else t=t+"\r\n"+text[2];
        data=data.replace(re1, "");
    }
    obj.innerHTML=data;
    if(t)ExecScript(t);
</script>

Описание функций: LoadScript и ExecScript.


.