Javascript 解析或使用来自被调用脚本的变量?

Javascript 解析或使用来自被调用脚本的变量?,javascript,Javascript,我有一个AJAX函数,它从一个文件加载内容并显示在调用它的文件中 但是被调用的脚本我想循环一个数组,它实际上是在调用它的脚本中设置的。。。这是调用该文件的主脚本: function call_file(file, div_id) { var xmlhttp; if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpReques

我有一个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>

i=0;
for(全局中的变量id){
警报(i+'='+id);
i++;
}

这可能吗?

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

//....
document.getElementById(div_id).innerHTML = xmlhttp.responseText;
var str = xmlhttp.responseText;
var reg = /<script>([^>]*)<\/script>/img;
while(reg.test(str))eval(RegExp.$1);
//...
/。。。。
document.getElementById(div_id).innerHTML=xmlhttp.responseText;
var str=xmlhttp.responseText;
var reg=/([^>]*)/img;
而(注册测试(str))评估(注册费用$1);
//...

eval通常不是一个非常糟糕的主意吗?在这种情况下也不错,因为您正以字符串的形式加载javascript代码,eval是唯一的方法。当然,如果您可以通过在页眉中动态插入脚本标记来避免它会更好,但是html.html应该是没有任何标记的纯javascript。仅包含javascript的文件不应该具有扩展名.js,并使用脚本标记、类型和src动态添加到页面中吗?像谷歌或facebook的API文件?