2015-02-09 21 views
0

我有一個<object>標籤是這樣的:訪問<object>數據用JavaScript

<object id="text" data="file.txt"></object> 

我能得到這樣的元素:

var text = document.getElementById("text"); 

現在,我該如何獲取文本的內容文件?

這樣做的目的是:具有使一個XMLHttpRequest

  1. 避免;
  2. 避免在代碼中以常量的形式存在文本數據;
  3. 保持原始格式的簡單明文文件,無需JSON或特殊格式,可被代碼訪問併成爲字符串變量。

以相同的方式,你可以在文檔中的<img><audio>標籤,然後訪問圖像/聲音,只是文本文件。

PS:我幾乎肯定<object>標籤不是這個的理想標籤。就像我試圖完成我所需要的一樣。

+0

什麼是你想怎麼辦,到底:從文件加載數據到您的網頁? – msanford 2015-02-09 22:37:45

+0

更準確地說,將一個.html文件加載到我的.html和.js文件中。 – 2015-02-10 01:27:24

+0

請注意,即使以這種方式將文件添加到對象中,瀏覽器仍然會向服務器發出請求以獲取它,因此儘管您自己避免提出明確的請求,但瀏覽器仍然會這樣做所以。 – 2015-02-10 11:15:07

回答

1

您可以隱藏的iframe中加載您的文本文件,並訪問內的內容:

<html> 
    <head> 
     <script type="text/javascript"> 
      function gettext() { 
       alert(document.getElementById('ifr').contentDocument.body.innerText); 
      } 
     </script> 
    </head> 
    <body> 
    <iframe id="ifr" style="display:none" src="test.txt" onload="gettext()"></iframe> 
    </body> 
</html> 
+0

這正是我想要的!它也可以與''標籤一起使用!謝謝! – 2015-02-10 22:50:31

1

我通常更喜歡AJAX這樣的東西。你能做這樣的事嗎?

var textContent = ''; 
var textRequest = new XMLHttpRequest(); 
textRequest.open('GET','file.txt'); 

textRequest.onreadystatechange = function() { 
    if (textRquest.readystate == 4 && textRequest.status == 200) { 
     textContent = textRequest.responseText 
    } 
} 

textRequest.send(); 

有沒有什麼使用對象元素的原因是什麼?

+0

它並不一定是一個對象元素。我需要的只是將一些純文本嵌入到文檔中(最好來自單獨的文件),以便我可以使用JavaScript進行閱讀。我希望它乾淨簡單,這就是爲什麼我避免要求作爲我的第一選擇。對不起,我應該在之前提到過。謝謝。 – 2015-02-09 23:19:54