7

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

<body>

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

<script>

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

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

在此处输入图像描述

火狐版本是 9.0.1

请提出建议和规避...

4

6 回答 6

9

由于某种原因 return false 在 href="javascript:" 内的 FF 中不起作用,但 void(0) 可以。

<a href="javascript: sam.save();void(0);">hehe</a>
于 2014-06-26T22:51:13.250 回答
7

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

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

哦,我错过了警报后的“return false”。在这种情况下,您看到的行为是正确的:如果 javascript: 执行返回的值不是 undefined ,则该值被视为 HTML 字符串并呈现。至少在大多数浏览器中。——鲍里斯·兹巴尔斯基 6 月 11 日 15:25

于 2012-06-08T14:54:56.513 回答
5
<a href="#" onclick="sam.save();">hehe</a>
于 2012-06-08T12:40:52.720 回答
2

更兼容的语法应该是

<a href="javascript:void(0)" onclick="sam.save()">hehe</a>
于 2015-04-21T02:07:37.793 回答
0

尝试一下

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

希望这可以帮助...

于 2016-04-07T07:54:17.147 回答
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>
于 2018-01-19T11:35:28.307 回答