2013-05-17 60 views
7

最近我碰到东西就这样“javascript://”是什么意思?

<a href="javascript://">some link</a> 

我不知道是什么“的javascript://”在该代码表示​​。它是否意味着名为“javascript”的协议?

任何帮助,非常感谢。

+4

也许它执行冒号后的指令。 //是一个评论,所以也许它什么都不做。 – antoyo

+1

对我来说,它看起来是错误的,如果想要一个链接到nop你可以做'javascript:;'或'javascript:void(0);',没有看到'javascript://'。 @antoyo说的话对我来说听起来很合理。 – Matthew

+0

http://stackoverflow.com/questions/7755088/href-expression-a-href-javascript-a –

回答

11

而且寻找到它,javascript://不是一个有效的协议。

通常,当您想通过链接执行js时,可以使用javascript:doSomething();

在这种情况下,

  • javascript:意味着 “执行JavaScript代码:后”
  • 而让//意味着JavaScript注释。

这似乎是一个无所事事的占位符,就像javascript:;会做的一样。

所以字面上:执行//(什么也不做)

+0

有人可能使用这种符号的唯一合乎逻辑的理由是某种* Framework * -ish符号,因此它可以用它自己的方式处理特定的动作/请求。没有其他理由真的是合乎逻辑的。 – 2013-05-17 15:51:17

+0

Eh。我更喜欢有一个类和一个真正的href的链接,并通过脚本附加一个onclick处理程序。此时,人们可以使用href来确定预期的操作,并且在很多情况下,它可以在没有JS的情况下工作。 – cHao

+0

@cHao那自由就在于你!幸运的是,编程以你想要的方式运行。 – sircapsalot

2

由于没有指定网址,它导致无处。

还有一些其他的方式做同一件事:

href="#"增加了额外的条目添加到浏览器的历史(这是烦人当例如背钮扣)。

href=""重新加载页面

href="javascript:;"似乎不会有任何问题(不是寻找凌乱,毫无意义等)

+1

实际上并不打算在任何地方导航的链接也几乎总是会有一个onclick处理程序,它可以防止默认操作,所以href真的没关系。但是,这样的链接相当糟糕,因为基本上没有办法在没有启用JS的情况下使其工作。 – cHao