Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在没有库/框架的IE7中防止默认锚行为_Javascript_Html_Internet Explorer_Hyperlink_Anchor - Fatal编程技术网

Javascript 在没有库/框架的IE7中防止默认锚行为

Javascript 在没有库/框架的IE7中防止默认锚行为,javascript,html,internet-explorer,hyperlink,anchor,Javascript,Html,Internet Explorer,Hyperlink,Anchor,我有一个这样的链接 <a onclick="return false;" href="http://somesite.com">my link</a> 在firefox、chrome和safari中,单击此链接时不会执行任何操作。在IE7中,链接仍然指向。有没有办法防止这种情况发生 我没有使用任何像jquery这样的框架,只是使用原始javascript。试试这个: <a onclick="window.event && (event.retu

我有一个这样的链接

<a onclick="return false;" href="http://somesite.com">my link</a>

在firefox、chrome和safari中,单击此链接时不会执行任何操作。在IE7中,链接仍然指向。有没有办法防止这种情况发生

我没有使用任何像jquery这样的框架,只是使用原始javascript。

试试这个:

<a onclick="window.event && (event.returnValue = false); return false;" href="http://somesite.com">hi</a>


根据一些网站,
event.returnValue=false应该有帮助。当然,其他浏览器会抛出错误,因为它们不支持returnValue,所以您应该检查它。甚至建议在单击时删除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()在标准兼容浏览器中,事件是给侦听器函数的参数。

一个简单的
“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>

函数取消默认值(e){
如果(!e)e=window.event;
e、 returnValue=false;
返回false;
}
不支持
returnValue
的浏览器将忽略它:他们不介意在事件对象上创建该名称的新属性


函数stopieancher(){
if(typeof window.event!=“未定义”)
return window.event.returnValue=false;
返回false;
}

我将把这个问题保留一段时间,看看我们是否可以获得更多的解决方案或输入。

这很好,但我认为您不需要第二次返回false;谢天谢地,这将只在IE中工作,并在其他浏览器中抛出一个“'event'undefined”-错误。我已经确认了上面的评论,返回到绘图板。这不会在IE7中输入if语句为什么不?您是否用操作代码替换省略号(在没有操作时分别将其删除)?如果其他浏览器不支持
returnValue
,则不会抛出错误-语句
event.returnValue=false事件
对象尚不存在,code>只会在该对象上创建一个新属性,不使用该属性的浏览器将忽略它。省略号是什么?我使用的代码与上面发布的完全相同,没有。。。;它在firefox中也可以工作,但在IE7中它仍然指向链接。@nnnnnn:我想到了不支持window.event的浏览器。或者这是html属性中js函数的标准?正如我所说,它在IE8中对我有效(我在发布我的答案之前测试了它)。
<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>