【问题标题】:Show incorrect html on page that doesn't influence the rest of the page在不影响页面其余部分的页面上显示不正确的 html
【发布时间】:2011-11-28 05:39:21
【问题描述】:

我的网站上有一些详细内容页面,我无法完全控制某个 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>

上面是我的页面的简化结构。

【问题讨论】:

  • 你是如何插入这个外部源的?阿贾克斯?服务器端生成的页面?

标签: javascript html css xhtml w3c


【解决方案1】:

我讨厌告诉人们在不需要时使用表格,但在这种情况下,我觉得它可以解决您的问题。

您面临的问题是浏览器格式良好的 html 检查之一,因此,您可以让一些浏览器按您希望的方式工作,而另一些浏览器的工作方式让您感到困扰,因为每个渲染引擎都会执行它自己的格式良好的 html 检查风格。

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

这对我来说很有意义。我希望我已经解释过了。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我同意你的观点,我不想用那种检查一切的方式。
    猜你喜欢
    • 2016-06-12
    • 1970-01-01
    • 2014-07-03
    • 2016-06-07
    • 1970-01-01
    • 2013-05-26
    • 2020-10-25
    • 1970-01-01
    • 2011-08-16
    相关资源
    最近更新 更多