链接中不引人注目的JavaScript

时间:2012-06-06 08:45:02

标签: javascript html hyperlink unobtrusive-javascript graceful-degradation

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

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

在此示例中,我想执行example()在JavaScript可用时输入链接,或者如果JavaScript不可用,请转到http://www.example.com

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

4 个答案:

答案 0 :(得分:1)

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

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

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

另外,请务必在事件处理程序中返回false

如果您使用的是任何JavaScript库,则很可能已经存在此功能。

答案 1 :(得分:1)

将您的JavaScript与HTML分开:)

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

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

答案 2 :(得分:0)

试试这个:

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

答案 3 :(得分:0)

可能正是您正在寻找的

event.returnValue = false;

取自此处: event.preventDefault() function not working in IE

相关问题