Javascript在Firefox中工作但在IE中没有 -

时间:2010-04-02 19:23:18

标签: javascript

我有这个

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

它在Firefox中工作正常,但Internet Explorer给我一个“错误:对象不支持这个属性或方法”我很神秘 - 这里可能会发生什么?

在违规行上方有一条评论线,这可能会有所作为吗?

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

http://www.imagineelection.com处自行查看该页面。我想要两个小链接“登录”和“创建帐户”,显示在页面的右上角。

谢谢!

2 个答案:

答案 0 :(得分:4)

此函数出现问题,因为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
}

答案 1 :(得分:0)

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