2011-09-30 46 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