2013-10-31 39 views
0

如果我添加的iframe頁面內,使SRC =「TEMP.TXT」我怎樣才能使瀏覽器把它解釋爲HTML而不是僅顯示「TEMP.TXT」的內容?製作瀏覽器解釋TXT爲HTML

+0

爲什麼它有.txt擴展名,如果它實際上是HTML?這不是非法的,就像你可以使用.pdf或.doc擴展名來命名你的GIF文件一樣,但它實際上並不合理。 –

回答

2

瀏覽器學到什麼web服務器告訴瀏覽器,它是MIME類型的文件。通常情況下,Web服務器配置爲使.txt文件是純文本文件,並且瀏覽器不應試圖解釋文件中的任何標記。

你想要什麼是瀏覽器獲得「text/html的」的MIME類型。三種方式來做到這一點;

1)設置文件名temp.htm,這是最簡單

2)更改Web服務器,以便txt文件現在HTML文件。在如Apache,你可以添加一行httpd.conf中,看起來像

AddType text/html .txt 

和刪除,看起來像

AddType text/plain .txt 

我不會推薦這條道路而行,因爲這是全球變化。您可以嘗試將其添加到代碼所在目錄中的.htaccess文件中。

3)使用動態語言如PHP設置在運輸文件的MIME類型。例如在PHP中:

header('Content-type: text/html'); 

然後將文件讀取到瀏覽器。

0

或者,如果你不希望/有訪問到/許可操作的Apache文件 和你.txt文件是在您的網頁是 你可以訪問的.textContent和 更換<body>同一個域的.innerHTML吧:

說你有一個在<body>

<iframe id="frame01" src="afile.txt" width="550" height="400"></iframe>

,說你有afile.txt文件在同一目錄:

<p>HTTP/1.1 200 OK</p> 
<p>Date: Sat, 13 Apr 2013 16:46:15 GMT</p> 
<p>Server: Apache</p> 
<p>Last-Modified: Fri, 08 Mar 2013 12:57:30 GMT</p> 
<p>Accept-Ranges: bytes</p> 
<p>Content-Length: 216469</p> 
<p>Connection: close</p> 
<p>Content-Type: image/jpeg</p> 

您可以通過運行該替換頁面內容:

// 
window.onload = 
function() { 
    var frame = document.getElementById("frame01"); 
    document.body.innerHTML = 
    frame.contentWindow.document.body.textContent; 
}; 
// 
// 

和輸出頁面shold樣子:


HTTP/1。1個200 OK

日期:星期六,2013年4月13日16時46分15秒GMT

服務器:Apache

的Last-Modified:週五,2013年3月8日十二時57分30秒GMT

接受-範圍:字節

的Content-Length:216469

連接:關閉

Content-Type:image/jpeg


與htm標籤解析。