javascript - getElementsByTagName() 在 IE 和 FF 中的行为不同

标签 javascript internet-explorer firefox gwt browser

我是 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/

相关文章:

javascript - Papa parse 无法解析字符串,但可以解析打印到控制台的同一字符串

html - 如何防止在 IE 中出现而在 Firefox 中不出现的页面闪烁?

javascript - Components.interfaces.nsIProcess chop 包含 "&"的 URL 参数

javascript - 从 Internet Explorer 启动 Chrome 浏览器

无法使用 ctypes.open() 加载 dll

javascript - 在 Firefox 中点击 input inside 按钮

javascript - 构建多 View 、多用户类型的 React 应用程序

javascript - angularjs 表单按钮未验证或未启用

javascript - 获取可变深度数组中的第一个数字数组

CSS:使非根 block 元素占据整个页面