提问人:federico-t 提问时间:6/6/2012 最后编辑:Cœurfederico-t 更新时间:7/9/2019 访问量:99
链接中不显眼的 JavaScript [重复]
Unobtrusive JavaScript in links [duplicate]
问:
我想要一个链接来执行 JavaScript 函数(如果 JavaScript 可用)或在属性中输入 URL(如果不是)。href
<a href="http://www.example.com" onclick="example(); return false;">
在此示例中,如果 JavaScript 可用,我想执行并且不输入链接,如果 JavaScript 不可用,则转到链接。example()
http://www.example.com
虽然这几乎适用于我尝试过的所有浏览器,但在 IE 7 中,无论 JavaScript 是否处于活动状态,它都只是跟随链接。我能做些什么来防止这种情况发生?
答:
0赞
Meisam Mulla
6/6/2012
#1
试试这个:
<a href="http://www.example.com" onclick="example(); event.returnValue=false; return false;">
0赞
Aeolun
6/6/2012
#2
这可能就是你要找的
event.returnValue = 假;
从这里检索: event.preventDefault() 函数在 IE 中不起作用
1赞
Dmitry Pashkevich
6/6/2012
#3
您必须在事件对象上使用 preventDefault() 来阻止默认操作(即导航到链接的 URL)。
由于浏览器中的实现略有不同,因此应编写一个单独的函数来执行此操作,并在事件处理程序中调用它:
function preventDefault(event) {
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
}
此外,请确保在事件处理程序中返回 false。
如果您使用的是任何 JavaScript 库,那么此功能很可能已经存在。
1赞
ValeriiVasin
6/6/2012
#4
将 javascript 与 HTML 分开:)
<a href="http://www.example.com" id='uniq-link'>
$(function () {
$("#uniq-link").on("click", example);
});
如果 Javascript 不可用 - 一切都会好起来的:)
评论
0赞
Dmitry Pashkevich
6/6/2012
+1,但 OP 没有提到他正在使用 jQuery 或任何其他库
0赞
ValeriiVasin
6/6/2012
现在是时候:)这样做了如果不是:D
评论