2015-06-19 64 views
-1

我想試驗一些代碼。我送XMLHttpRequest來一個JavaScript文件,其中我剛纔document.write('hello world');我用在我的HTML文檔的頭部分以下代碼:對.js文件的XMLHttpRequest

<script> 
     function loadXMLDoc() { 
     var xmlhttp; 
     if (window.XMLHttpRequest) { 
      xmlhttp = new XMLHttpRequest(); 
     } else { 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
       document.getElementById("myDiv").innerHTML = xmlhttp.responseText; 
      } 
     } 
     xmlhttp.open("GET", "java.js", true); 
     xmlhttp.send(); 
    } 
</script> 

和java.js只有一行代碼

document.write('hello world'); 

我期望的結果應該是'hello world',但它會打印整行document.write('hello world');.那麼有沒有什麼辦法只能得到'hello world'作爲responseText?使用這個文件。我知道這可以使用PHP/ASp或僅使用文本文件來完成,但這是來自我大學前兩年的挑戰,當時我是一名學生,使用javascript文件來做這件事,但我仍然沒有親愛的如何獲得這個。我想從堆棧溢出世界的優秀大腦知道這一點。

+0

只需執行代碼。 – Anonymous

+0

使用腳本標籤在原地注入'Hello World',簡單的Ajax不會爲此工作... – dandavis

回答

1

要做到這一點的唯一方法是通過eval進行響應,並且您最好知道使用eval的副作用。

替換xmlhttp.responseTexteval(xmlhttp.responseText)它應該工作。

注意:請謹慎使用,而eval ing!

只要確保在響應中不發送任何標記,如<script>,因爲eval將不會產生預期的效果。

-1

xmlhttp.responseText返回一個字符串。所以把你的世界放在你的java.js文件中。 實際上,java.js不會執行JavaScript語言。

+0

挑戰在那些日子被接受和解決,所以如果你不知道,那麼不要認爲它是不可能。 –

+0

對不起,想幫忙...而解決方案是什麼? –