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

1 つの方法は、スクリプトを抽出して自分で評価することです。例えば:

//....
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 に答える