2011-09-30 42 views
1

我在我的網站上有一些詳細的內容頁面,我沒有完全控制在某個div中顯示的html內容。現在,當外部資源的內容包含無效的HTML時,就像沒有結束,我在右側欄中的導航也是斜體。我不想使用iframe,比如ebay,並且可能有其他方法來解決這個問題。希望得到答案。在不影響頁面其餘部分的頁面上顯示不正確的html

<html> 
<body> 
<div id="page"> 
<div id="content">[content of external resource]</div> 
<div id="right-bar">[My navigation]</div> 
</div> 
</body> 
</html> 

我的頁面的簡化結構就在上面。

+3

你如何插入這個外部來源? AJAX?服務器端生成頁面? – Thor84no

回答

0

我不想告訴別人在不需要時使用表格,但在這種情況下,我覺得它可以解決您的問題。

您面對的問題是瀏覽器結構良好的html檢查之一,因此,您可以讓一些瀏覽器按照您的希望工作,而其他瀏覽器則以困擾您的方式工作,因爲每個呈現引擎都會以執行它自己的格式良好的HTML檢查風味。

如果你把它包裝在td中,那麼我認爲它不會以你所看到的方式流血造型。只是一個想法。 td容器比你目前使用的div容器更有幫助的原因如下:由於你正在將它們的東西包裝在一個div中,並且他們很可能將自己的東西包裝在div中,所以瀏覽器不會「不知道錯誤在哪裏。它不知道應該在哪裏插入丟失的div標籤。所以基本上,div中的div會爲格式良好的html檢查造成問題,因爲它不確定您忘記了哪個標籤。但是,div中的div在td中更明顯。如果td打開和關閉,那麼它知道缺少的標籤屬於一小組可能的元素。換句話說,通過將它包裝在不同的標籤類型中,您可以使格式良好的檢查更輕鬆地完成工作。

這對我有意義。我希望我已經解釋好了。

+0

明確的答案,謝謝,將看看它 – user972546

+0

接受答案兄弟... – frosty

0

我認爲除了使用iframe外別無它法。如果您不使用iframe來託管外部內容,則意味着外部內容將包含在頁面的DOM結構中,因此除非您解析所有外部內容代碼以檢查所有可能影響頁面的事情(這可能是一個瘋狂的),你永遠不會確定你的頁面是安全的來自外部代碼的附帶效應。

即使使用iframe,無論如何您仍應解析外部內容以查找腳本標記,以防止在頁面內執行任何不期望的JavaScript代碼。

+0

我同意你,我不想去檢查一切的方式。 – user972546