我是 JavaScript 新手,试图找出标签信息值。 GWT代码如下..
public static native boolean isToolBarInstalled() /*-{
alert("Validating the toolbar installed.");
var metas = document.getElementsByTagName('head')[0].getElementsByTagName('meta');
var i;
alert ("Meta length: "+metas.length);
for (i = 0; i < metas.length; i++){
alert("Value: "+metas[i].value);
if (metas[i].getAttribute('name') == "toolbar"){
return true;
}
}
return false;
}-*/;
对于同一页面,FF 返回 true 而 IE 返回 false?任何线索/建议都会有帮助。
WM。
HTML 太大,无法发布,这里是代码片段..
<html>
<head>
....
<title>My App</title>
<meta name="toolbar" content="1.0">
</head>
<body>
.....
</body>
<html>
最佳答案
在 IE7 中适合我。
检查<meta>
之前没有任何文本内容除了简单的空格之外的结束标记。
如果 <html>
中或之前有任何非空白文本或<head>
,浏览器将确定您要打开 <body>
包含文本。 (这实际上在非 XHTML HTML 中有效,因为 </head>
结束标记和 <body>
开始标记是可选的。)这意味着关闭 <head>
节,所以数量<meta>
里面的标签<head>
将是 0。
无论如何,你不妨直接说:
var metas= document.getElementsByTagName('meta');
作为检查它们是否在 <head>
的部分对于有效文件来说是多余的;那是唯一的地方<meta>
允许出现。
alert("Value: "+metas[i].value);
没有.value
上<meta>
,你的意思是.content
?
if (metas[i].getAttribute('name') == "toolbar"){
使用metas[i].name
。没有理由使用getAttribute
/setAttribute
HTML 文档,在 IE 上出现问题。
关于javascript - getElementsByTagName() 在 IE 和 FF 中的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3918593/