0

我有一个 AJAX 函数,它从文件加载内容并显示在调用它的文件中。

但是被调用的脚本我想循环一个数组,该数组实际上是在调用它的脚本中设置的......这是调用文件的主脚本:

function call_file(file, div_id) {
    var xmlhttp;
    if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById(div_id).innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", file, true);
    xmlhttp.send();
}
var global = new Array();
global[0] = 1;
global[1] = 2;
call_script('html.html', 'main');

html.html 是被调用的文件,其中包含:

<script>
    i = 0;
    for(var id in global) {
        alert(i + ' = ' + id);
        i++;
    }
</script>

这是可能吗?

4

1 回答 1

0

一种方法是提取脚本并自己进行评估。例如:

//....
document.getElementById(div_id).innerHTML = xmlhttp.responseText;
var str = xmlhttp.responseText;
var reg = /<script>([^>]*)<\/script>/img;
while(reg.test(str))eval(RegExp.$1);
//...
于 2012-05-22T04:39:19.153 回答