我有一个像这样的链接
<a onclick="return false;" href="http://somesite.com">my link</a>
在firefox,chrome和safari中,当您单击它时,此链接不会执行任何操作。在IE7中,链接仍然转到http://somesite.com。有没有办法防止这种情况发生?
我没有使用像jquery这样的框架,只是原始的javascript。
答案 0 :(得分:1)
试试这个:
<a onclick="window.event && (event.returnValue = false); return false;" href="http://somesite.com">hi</a>
答案 1 :(得分:0)
根据某些网站,event.returnValue = false;
应该有所帮助。当然其他浏览器会抛出错误,因为它们不支持returnValue,所以你应该检查一下。 This article甚至建议在点击时删除href属性: - )
失败保存应
<a onclick="...; if (window.event && typeof window.event.returnValue == 'boolean') return window.event.returnValue = false; return false;" href="http://somesite.com">hi</a>
使用js添加eventListener,您还可以在符合标准的浏览器中使用event.preventDefault();
,其中event是给予侦听器函数的参数。
答案 2 :(得分:0)
一个简单的"return false;"
在IE中一直对我有用。我没有IE7可供测试,但它现在在IE8中对我有用,我确信它曾经在IE6中工作。
不过,您可以尝试以下内容:
<a onclick="return cancelDefault();" href="http://somesite.com">my link</a>
<script>
function cancelDefault(e) {
if (!e) e = window.event;
e.returnValue = false;
return false;
}
</script>
不支持returnValue
的浏览器会忽略它:如果您在事件对象上创建该名称的新属性,他们不会介意。
答案 3 :(得分:0)
我想出了这个(从其他一些答案中获得灵感)
<script>
function stopIEAnchor(){
if (typeof window.event !== "undefined")
return window.event.returnValue = false;
return false;
}
</script>
<a onclick="return stopIEAnchor()" href="http://somesite.com">link</a>
我会暂时搁置这个问题一段时间,看看我们是否可以获得更多的解决方案或输入。