2012-04-25 61 views

回答

4

如果你需要通过片断一个JavaScript,而且必须,而不是一个元素的默认行为然后使用这个javascript: ;语法。

例如

<a href="javascript:alert('');">Test</a> <!-- Runs on the click of the link --> 

同样,你可以在其他事件也结合这些,像onclickonchange等,但这次真的不必要,因为你可以直接执行该代码段。

,我在几年所看到的这个用途是:

  1. <a href="javascript:void(0);">Test</a>
  2. <form action="javascript:void(0);">..</form>
1

这本身就什么也不做,但通常的javascript:之前一些JavaScript代码,表明浏览器应该执行的代码,而不是把href属性的URL。而已。

1

javascript:;在href中的作用与将某些东西放在“onclick”属性中相同。

因此,

<a href="javascript:do_something();">Link</a> 

是相同的

<a href="#" onclick="do_something();">Link</a> 

我不知道这是最好的时候使用,但值得一提的是,你可以键入这些“链接”到大多数现代浏览器的地址栏,它会运行。

复制和粘贴(或类型,铬似乎禁止这一点。)在你的地址栏中

javascript:alert("test"); 

,以及你可以保存链接与这些地址书签,以便它将运行该脚本您点击书签的任何页面。

0

这可能是一个参考,它在点击时什么都不做,并可能伴随着设置onclick等来实际执行任何操作。

upd:虽然有人说在href中放置脚本与在onclick中放置脚本是一样的,但还是有一些区别的,比如右键单击会发生什么(并且某些脚本绝对不应该在新选项卡或其他)。尽管如此,我对这种做法的看法是,它有点难看,不仅因为鼠标悬停在链接上,而且还因为状态栏中的信息不完整。

-2

你可以想象,有人复制那个“javascript :;”进入url框并按下Enter键。由于它以“javascript:”开头,因此浏览器将知道在当前页面中执行后面的JavaScript。由于以下所有内容都是“;”,实际上什么都不会发生。这与点击一个onClick属性设置为“;”的按钮是一样的。

例如:

<a href="javascript:alert('howdy!')">Click me!</a> 

<button onClick="alert('howdy!')">Click me!</button> 

甚至

<a href="#" onClick="alert('howdy!')">Click me!</a> 

请记住,因为它是一个链接,大多数浏览器将呈现相同效果的地址(在这种情况下“javascript:alert('嗨!')”)在状态栏中,这可能是不受欢迎的(我觉得它是一部分特别丑陋)。