2011-01-28 88 views
2

the demo is here
(不能複製它的jsfiddle,因爲他們不允許阿賈克斯到足夠的程度)的Internet Explorer 8截斷iframe的內容

試想一下,你有你的iframe頁面上

<iframe id="if1" src="/some/url"> </iframe> 

/some/url返回簡單的文字:<form>text</form><br/>

而且還一度iframe中加載,你訪問其內容的JavaScript。

var io = document.getElementById('if1'); 
alert(io.contentWindow.document.body.innerHTML); 

正常的瀏覽器顯然會按原樣返回內容。但是,Internet Explorer 8個的回報一些有趣

text</FORM><BR> 

即使右鍵/查看源代碼的iframe上顯示正確的內容:<form>text</form><br/>

我沒有嘗試其他的IE版本。

您之前看到過這個問題嗎?這是我在將webapp調整到IE時遇到的問題的一個非常簡化的版本。基本上,我通過iframe做了ajax請求(不是xhr,我需要上傳文件)並且返回了html片段。
非常感謝!

+2

嗯。你有沒有嘗試給內框完整,有效的結構(` ....`)? – 2011-01-28 16:01:12

+0

另外,我注意到你沒有發送一個`content-type`和原文件。這應該不會有什麼不同,因爲.html會自動被解釋爲HTML,但它仍然是一件好事,可以通過 – 2011-01-28 16:02:54

回答

3

添加body各地響應工作,有趣,我沒想到它的時候了。

而最好的事情是,沒有必要更改前端:document.body.innerHTML將返回沒有body標記的內容(自然地)。

0

你有沒有嘗試過使用jQuery來查看這是否更好?

alert($('#if1').html());