在页面上显示不正确的html,不会影响页面的其余部分

时间:2011-09-30 06:34:39

标签: javascript html css xhtml w3c

我的网站上有一些详细的内容页面,我无法完全控制某个div中显示的html内容。现在当外部资源的内容包含无效的html时,就像没有结束一样,我在右边栏中的导航也是斜体。我不想使用iframe,比如ebay,并且可能还有其他方法可以解决这个问题。希望得到答案。

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

我页面的简化结构如上所示。

2 个答案:

答案 0 :(得分:0)

我讨厌告诉人们在没有必要时使用桌子,但在这种情况下,我觉得它可以解决你的问题。

你所面临的问题是浏览器格式正确的html检查之一,所以,你可以让一些浏览器按照你的意愿工作,而其他浏览器则以困扰你的方式工作,因为每个渲染引擎都会执行它自己格式良好的HTML检查风格。

如果你将它包裹在td中,那么我认为它不会像你看到的那样流血造型。只是一个想法。 td容器比你当前使用的div容器更多的原因如下:由于你将它们的东西包装在div中,并且它们最有可能将自己的东西包装在div中,浏览器不会知道错误在哪里。它不知道应该在哪里插入缺少的div标签。基本上,div中的div div为格式良好的html检查创建了问题,因为它不确定你忘记了哪个标签。但是,div中的div在td中,更为明显。如果td打开和关闭,那么它知道缺少的标签属于一小组可能的元素。换句话说,通过将其包装在不同的标签类型中,您可以更轻松地在格式良好的检查上完成它的工作。

这对我有意义。我希望我已经解释好了。

答案 1 :(得分:0)

我认为除了使用iframe之外别无他法。如果您不使用iframe来托管外部内容,则意味着外部内容将包含在您网页的DOM结构中,因此除非您解析所有外部内容代码以检查所有可能影响您网页的内容(这可能是一种疯狂),你永远不会确定你的页面是否可以安全地抵御来自外部代码的附带效果。

即使使用iframe,您也应该解析外部内容以查找脚本标记,以防止在您的网页内执行任何不需要的JavaScript代码。