Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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://";作为阻止行动的链接?_Javascript_Jquery_Hyperlink - Fatal编程技术网

“使用”是错误的或不好的做法;javascript://";作为阻止行动的链接?

“使用”是错误的或不好的做法;javascript://";作为阻止行动的链接?,javascript,jquery,hyperlink,Javascript,Jquery,Hyperlink,我刚看到 这让我想起了我经常做的一些事情,以防止某些链接的默认操作: <a href="javascript://">something</a> 但是,我所做的是错误的还是不好的做法?这实际上是如何工作的?这是一种不好的做法,因为存在一种更好的机制,即event.preventDefault() 另外,javascript:伪协议应该只用于bookmarklet。这是一种不好的做法,因为存在一种更好的机制,即event.preventDefault() 另外,javas

我刚看到 这让我想起了我经常做的一些事情,以防止某些链接的默认操作:

<a href="javascript://">something</a>

但是,我所做的是错误的还是不好的做法?这实际上是如何工作的?

这是一种不好的做法,因为存在一种更好的机制,即
event.preventDefault()


另外,
javascript:
伪协议应该只用于bookmarklet。

这是一种不好的做法,因为存在一种更好的机制,即
event.preventDefault()


另外,
javascript:
伪协议应该只用于bookmarklet。

这有点不幸,因为如果用户Ctrl+单击或右键单击并说“在新选项卡中打开”,他们将得到一个完全空白的页面

使用
plus
preventDefault
更好,因为在这种情况下,Ctrl+click只会将他们带回他们所在的页面


当然,最好的方法是让
href
指向一个实际有意义的页面,而JavaScript是对体验的一种渐进增强,可以覆盖有意义的默认值。弹出窗口就是一个很好的例子,但只要多做一点工作,就可以实现这一点。

这有点不幸,因为如果用户Ctrl+单击或右键单击并说“在新选项卡中打开”,他们将得到一个完全空白的页面

使用
plus
preventDefault
更好,因为在这种情况下,Ctrl+click只会将他们带回他们所在的页面


当然,最好的方法是让
href
指向一个实际有意义的页面,而JavaScript是对体验的一种渐进增强,可以覆盖有意义的默认值。弹出窗口就是一个很好的例子,但只要多做一点工作,就可以做到这一点。

一个相关的小贴士:在“onfoo”事件处理程序属性的值中,“javascript:”前缀对浏览器来说毫无意义,它最终被解释为javascript解析器的语句标签。如果您想使用click,一个相关的小节:在“OnFoO”事件处理程序属性的值中,“JavaScript:”前缀对于浏览器来说毫无意义,它最终被解释为JavaScript解析器的语句标签。如果您想使用单击,但不考虑链接,请考虑使用。
<a href="javascript:void(0)">something</a>
e.preventDefault();