firefox javascript在href中返回false会重定向浏览器并显示false

时间:2012-06-08 12:39:39

标签: javascript firefox

以下是我的代码在chrome中运行良好。

<body>

<a href="javascript: sam.save();">hehe</a>

<script>

var sam = {
    save : function()
    {
        alert("here")
            return false;       
    }
}
</script>

在firefox中运行时,页面会重定向,并且屏幕上会显示false,其中的地址栏内容如图所示

enter image description here

firefox版本是9.0.1

建议和规避请...

6 个答案:

答案 0 :(得分:7)

由于某些原因,返回false并不在FF内部工作href =&#34; javascript:&#34;,但void(0)确实如此。

<a href="javascript: sam.save();void(0);">hehe</a>

答案 1 :(得分:5)

<a href="#" onclick="sam.save();">hehe</a>

答案 2 :(得分:5)

您引用的代码不可能产生您观察到的行为。仅当sam.save()返回false时才会发生观察到的行为,而引用的代码返回undefined。您的实际完整代码是什么样的?

编辑:有用的答案在评论中。我把它放在这里,以便更容易找到。

  

哦,我在警报后错过了“返回假”。在这种情况下,您看到的行为是正确的:如果javascript:execution返回未定义的值,则将该值视为HTML字符串并进行呈现。至少在大多数浏览器中。 - 鲍里斯Zbarsky 11月11日15:25

答案 3 :(得分:2)

更兼容的语法应该是

<a href="javascript:void(0)" onclick="sam.save()">hehe</a>

答案 4 :(得分:0)

试试吧

`<a href="javascript: void(sam.save())">hehe</a>`

希望这会有所帮助......

答案 5 :(得分:0)

示例如何运作:

Firefox:第二个和第三个是渲染白页

Chromium:第一种情况是渲染白页

<body>

<a href="javascript: something.with_early_return();">with_early_return</a>
<a href="javascript: something.with_false();">with_false</a>
<a href="javascript: something.with_string();">with_string</a>

<script>

var something = {
    with_early_return: function() {
        alert("with_early_return");
        return;
    },

    with_false: function () {
        alert('with_false');
        return false;
    },

    with_string: function () {
        alert('with_string');
        return 'It renders this as text';
    }
}
</script>