在用ajax获取远程页面内容后,发现里面的script块未执行,第一感觉是把那些代码调到当前页面,但是又觉得不太方便,其次可以搜索出所有script块的内容,js文件重新加载,代码重新执行,效率是低了点,但更方便。
  顺手写了个解决此问题的回调处理:
var processRequest=function(_instance)
    {
        document.getElementById('tdiv').innerHTML
+=_instance.responseText;        
        
var _c=document.getElementsByTagName("SCRIPT");
        
var _first=null;
        
for (var i=0;i<_c.length;i++)
        {
            
if (_c[i].src)
            {
                
var _s=document.createElement("script");
                _s.type
="text/javascript";
                _s.src
=_c[i].src;
                _c[
0].insertAdjacentElement("beforeBegin",_s);
                _c[i].parentNode.removeChild(_c[i]);             
            }
            
else if (_c[i].text)
            {
                window.execScript(_c[i].text);
            }
        }
    }

  当取得页面内容时,script块已经在dom树中,只是将它作为text执行了。
 posted on 2006-06-06 09:43  往事如风  阅读(1070)  评论(3编辑  收藏  举报