【发布时间】:2011-09-22 06:57:43
【问题描述】:
我目前正在设计的网站需要通过 W3C 的标记验证。我们正在使用 Drupal 7,它强制我们的主题使用 XHTML + RDFa。我们正在使用谷歌地图,它需要一个 iFrame 反过来让我很伤心。
元素“iframe”未定义
有人知道如何绕过这个验证测试吗?用 Google Maps javascript 替换 iframe 是否明智?
【问题讨论】:
标签: validation drupal xhtml
我目前正在设计的网站需要通过 W3C 的标记验证。我们正在使用 Drupal 7,它强制我们的主题使用 XHTML + RDFa。我们正在使用谷歌地图,它需要一个 iFrame 反过来让我很伤心。
元素“iframe”未定义
有人知道如何绕过这个验证测试吗?用 Google Maps javascript 替换 iframe 是否明智?
【问题讨论】:
标签: validation drupal xhtml
这会成功的
<script type="text/javascript">
$(document).ready(function(){
$('#iframe').after('<iframe src="url" scrolling="no" frameborder="0" overflow:hidden; width:400px; height: 70px;"></iframe>');
});
</script>
【讨论】:
如果 <iframe> 标记是从 JavaScript 代码中添加的,则该网站将通过验证。
我也不确定在使用 Google 地图时 JavaScript 是否需要使用该 HTML 标记。
【讨论】:
验证的专制并不总是一件好事。如果您必须使用不允许<iframe> 的文档类型/模式以及需要<iframe> 的服务,那么您将陷入困境。
废话是 (a) iframe 可以很好地跨浏览器工作,并且 (b) 自从确定了 XHTML 1.x 规范 <iframe> 在 HTML5 中获得了新的生命,它是一个完全有效的元素具有许多新功能。
此外,几乎可以肯定的是,您正在使用 text/html 内容类型为您的页面提供服务,这意味着浏览器不会以与验证器相同的方式处理您的标记,因此验证器的结果本质上是徒劳的。
无论如何,如果你真的必须遵守,那么你将不得不不使用<iframe>。
综上所述,我认为没有必要将<iframe> 与 Google 地图一起使用。一种选择可能是改用<object>。但我使用的是谷歌地图(V2 JavaScript API),没有任何一个,只是将地图元素直接嵌入到容器页面中。似乎工作正常。
不过,我没有使用 Drupal 7。我不知道可能会应用什么额外的限制。
【讨论】: