0

我想要一个链接来执行 JavaScript 函数(如果 JavaScript 可用)或在href属性中输入 URL(如果不是)。

<a href="http://www.example.com" onclick="example(); return false;">

在这个例子中,如果 JavaScript 可用,我想执行example()而不输入链接,如果 JavaScript不可http://www.example.com用,我想去。

虽然这适用于我尝试过的几乎所有浏览器,但在 IE 7 中,无论 JavaScript 是否处于活动状态,它都只是跟随链接。我能做些什么来防止这种情况发生?

4

4 回答 4

1

您必须在事件对象上使用preventDefault()来阻止默认操作(即导航到链接的 URL)。

因为浏览器中的实现略有不同,你应该编写一个单独的函数来执行此操作并在事件处理程序中调用它:

function preventDefault(event) {
        if (event.preventDefault) {
            event.preventDefault();
        } else {
            event.returnValue = false;
        }
}

此外,请务必在您的事件处理程序中返回 false 。

如果您正在使用任何 JavaScript 库,那么这个功能很可能已经存在。

于 2012-06-06T08:52:06.617 回答
1

将您的 javascript 与 HTML 分开 :)

<a href="http://www.example.com" id='uniq-link'>
$(function () {
    $("#uniq-link").on("click", example);
});

如果 Javascript 不可用 - 一切都会好的 :)

于 2012-06-06T08:53:11.440 回答
0

试试这个:

<a href="http://www.example.com" onclick="example(); event.returnValue=false; return false;">
于 2012-06-06T08:49:39.677 回答
0

可能是您正在寻找的

event.returnValue = 假;

从这里检索: event.preventDefault() 函数在 IE 中不起作用

于 2012-06-06T08:50:26.923 回答