2012-05-22 36 views
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> 

這是不是可能?

回答

0

一種方法是提取腳本並自行評估。例如:

//.... 
document.getElementById(div_id).innerHTML = xmlhttp.responseText; 
var str = xmlhttp.responseText; 
var reg = /<script>([^>]*)<\/script>/img; 
while(reg.test(str))eval(RegExp.$1); 
//... 
+1

是不是一個非常糟糕的主意呢? – Sir

+0

這種情況並不壞,因爲您正在將JavaScript代碼正確加載爲字符串,eval是唯一的方法。當然,如果你可以通過在標題中動態插入腳本標籤來避免它,但是html.html應該是沒有任何標籤的純javascript。 – supNate

+0

不應該只包含javascript的文件具有擴展名.js,並且可以通過腳本標記,類型和src動態添加到頁面中?像谷歌或Facebook的APIS文件? – dievardump