我是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>
答案 0 :(得分:0)
试试这个:
element.attributes[value].nodeAttribute;
getAttribute()方法将返回 Internet Explorer中的“null”时 试图获取a的for属性 标签元素。
可能是同一个问题......
好看:
在这个例子中,它正在使用IE。
function 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);
var attr = metas[i].getAttribute('name');
// IE workaround
if (attr == null)
{
attr = metas[i].attributes["name"];
if (attr != null) attr = attr.nodeValue;
}
if (attr == "toolbar")
return true;
}
return false;
}
alert( "Is installed: " + isToolBarInstalled() );
答案 1 :(得分:0)
在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
。没有理由在HTML文档上使用getAttribute
/ setAttribute
,并且IE上存在问题。