代码之家  ›  专栏  ›  技术社区  ›  Summer

javascript在firefox中工作,但在ie中不工作-

  •  1
  • Summer  · 技术社区  · 15 年前

    我有这个

    authnav='<li class="last"><a href="auth/login">login</a></li>'+
      '<li><a href="auth/create_account">create account</a></li>';
    

    在Firefox中工作得很好,但是InternetExplorer给了我一个“错误:对象不支持这个属性或方法”我很困惑-这里可能发生什么?

    在冒犯的那一行上面有一条评论,这可能会有什么不同吗?

    //authnav='<li class="last"><a href="auth/login">login</a></li>';
    

    你自己也可以在 http://www.imagineelection.com . 我想要两个小链接,“登录”和“创建帐户”,出现在页面的右上角。

    谢谢!

    2 回复  |  直到 15 年前
        1
  •  4
  •   Martin Smith    15 年前

    当ie允许您引用 document.getElementById("authnav") 作为authnav,然后当你给它分配一个字符串时会感到不安。可能显式声明一个局部变量 var authnav 它会起作用还是打算成为一个全局变量?

    function add_auth_nav() {
        name = get_cookie("name");
        candidate = get_cookie("candidate");
        if (name) {
            authnav = '<li class="last"><a href="auth/logout">logout</a></li>';
            if (candidate) {
                authnav = authnav + '<li><a href="edit/candidate/' + candidate + '">edit profile</a></li><li><a href="profile/' + candidate + '">view profile</a></li>'
            }
            authnav = authnav + "<li>" + name.replace(/\+/g, " ") + "</li>"
        } else {
            authnav = '<li class="last"><a href="auth/login">login</a></li><li><a href="auth/create_account">create account</a></li>'
        }
        document.getElementById("authnav").innerHTML = authnav
    }
    
        2
  •  0
  •   James Westgate    15 年前

    结果重现。你能用原始文件替换ie_scripts.min.js文件并检查它是否仍然失败…