2012-06-25 130 views
3

我有一個網站與iFrame。iFrame內容不顯示在IE8中

主機頁面上有一些非常基本的JS,iframed頁面也有簡單的JS。

當我像平常一樣嵌入iframe時:<iframe src="iframeURL" width="900" height="1000"></iframe>它在所有瀏覽器中都能正常工作,但在IE8中運行正常。

我嘗試過各種東西:

  • 第一:禁用所有JS
  • 刪除src屬性,並與JS將其添加使用<object>
  • 代替
  • 我用proxy.php使內容出現就好像它來自相同的域

它不在IE8中工作,無論我做什麼。

有趣的是,我可以在單獨的選項卡中打開我想要的iframe的頁面,並且工作得很好。

如果我將src屬性更改爲「some_other_random_page_from_internet」,它將起作用。

另一件事是,主機和iframe使用postMessage進行通信,我可以看到通信工作正常,它只是沒有顯示的內容,但是當我用開發人員工具檢查頁面源時,我可以看到內容在那裏。

iframe的內容可能導致問題嗎?這是一個基本的HTML +基本的JS,JS禁用它不應該是一個問題。

任何想法我可以檢查什麼?

PS。我不能顯示代碼(NDA等)

+0

你能看到的iFrame在其他網站? http://www.w3schools.com/html/html_iframe.asp 嘗試一個W3C驗證程序,另一臺PC,另一個docType,以停止所有軟件,如Skype,防火牆/防病毒/惡意軟件...... –

+0

這是非常好的一點。 iframed頁面不驗證(無效的文檔類型)。由於目前我無法對其進行更改(其他人正在管理該內容),所以我必須等待它是否能解決問題。 – strah

+0

它沒有解決問題。我可以在iframe中看到其他網站,但不是那個特定的網站。嘗試不同的PC ... – strah

回答

4

對於Lukx's comment的可見性,真正的答案是在iframe本身上設置position:relative,因爲您可能無法編輯html源頁面,或者可能需要使用相對定位。

只需添加這個CSS,你應該準備就緒:

iframe { 
    position: relative; 
} 

我寫了這個問題的完整描述在this answer

10

找到它了。

的iFrame內容有以下CSS規則:

html{ position: relative; } 

刪除它幫助了很多。

+4

當一個不能夠修改iframe的裏面:你可以在iframe標籤上也設置了'position:relative' – Lukx