执行AJAX返回HTML片段中的JavaScript脚本

如果AJAX加载的数据是一个HTML片段,而且这个HTML片段还包含脚本 ' ;
document.getElementById(
' ajaxData ' ).innerHTML  =  responseText;
script >

二、两种解决办法

1、 利用JavaScript的eval方法执行脚本。

本方法的具体实现思路是把xmlHttp.responseText中的脚本都抽取出来,不管AJAX加载的HTML包含多少个脚本块,我们对找出来的脚本块都调用eval方法执行它即可。下面提供一个封装好的函数:

function  executeScript(html)
{
    
var  reg  =   / ]*>([^/x00]+)$ / i;
    
// 对整段HTML片段按拆分
     var  htmlBlock  =  html.split( " " );
    
for  ( var  i  in  htmlBlock) 
    {
        
var  blocks; // 匹配正则表达式的内容数组,blocks[1]就是真正的一段脚本内容,因为前面reg定义我们用了括号进行了捕获分组
         if  (blocks  =  htmlBlock[i].match(reg)) 
        {
            
// 清除可能存在的注释标记,对于注释结尾-->可以忽略处理,eval一样能正常工作
             var  code  =  blocks[ 1 ].replace( /

你可能感兴趣的:(JavaScript,html,ajax,javascript,脚本,jquery,div)