iframe在XHTML Strict中无效

时间:2011-11-25 06:35:32

标签: html google-maps iframe xhtml xhtml-1.0-strict

我正在使用Google地图构建一个网站,默认情况下会生成此代码:

<iframe width="550" height="500" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.uk/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=Amber,+115+Portswood+Road,+Southampton,+SO17+2FX,+United+Kingdom&amp;aq=0&amp;sll=50.923556,-1.394663&amp;sspn=0.006709,0.01929&amp;vpsrc=6&amp;ie=UTF8&amp;hq=Amber,&amp;hnear=115+Portswood+Rd,+Southampton+SO17+2,+United+Kingdom&amp;t=m&amp;ll=50.923178,-1.393676&amp;spn=0.012985,0.027466&amp;z=15&amp;output=embed"></iframe><br /><small><a href="http://maps.google.co.uk/maps?f=q&amp;source=embed&amp;hl=en&amp;geocode=&amp;q=Amber,+115+Portswood+Road,+Southampton,+SO17+2FX,+United+Kingdom&amp;aq=0&amp;sll=50.923556,-1.394663&amp;sspn=0.006709,0.01929&amp;vpsrc=6&amp;ie=UTF8&amp;hq=Amber,&amp;hnear=115+Portswood+Rd,+Southampton+SO17+2,+United+Kingdom&amp;t=m&amp;ll=50.923178,-1.393676&amp;spn=0.012985,0.027466&amp;z=15" style="color:#0000FF;text-align:left">View Larger Map</a></small>

现在这会在检查XHTML Strict时抛出错误,因为它是过时的帧,但我应该使用什么呢?

感谢您的帮助

3 个答案:

答案 0 :(得分:5)

如果您的网页上必须有地图iframe,最简单的解决方案是将您的doctype更改为XHTML 1.0 Transitional,这样就可以使用iframe:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

但是,如果您开始看到页面呈现的任何差异(请参阅standards mode vs almost standards mode),并且您更关心网站在Web浏览器中的显示方式而不是验证您的标记,请保留XHTML 1.0 Strict doctype。浏览器不会因为页面无效而导致错误XHTML;他们会以任何方式处理你的iframe。

答案 1 :(得分:1)

使用Javascript存在一个肮脏的技巧:

function load()
{
    document.getElementById("ramec").innerHTML = '<iframe class="ramec"></iframe>';
}

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="yourjshere.js">
</script>
<title></title>
</head>
<body onload="load()">
<div id="ramec">
</div>
</body>
</html>

第一个链接中的文档验证为XHTML1.0 Strict,虽然它在内部使用iframe(尝试文档中的链接)。重要的是将iframe放入文档的Javascript是外部的。

我不确定是否值得付出全部努力。也许更改为HTML4.1 Strict文档类型会更有帮助(页面的呈现与XHTML1.0 Strict相同)。

答案 2 :(得分:0)

对象标签执行相同的功能,无需黑客。只需将“ src”属性更改为“ data”,然后添加type =“ text / html”。

repeat