11
4

5 回答 5

8

如果您需要传递需要运行的 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>
于 2012-04-25T04:20:42.077 回答
2

javascript:; 在 href 中与在“onclick”属性中放置内容相同。

因此,

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

等同于

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

我不确定何时使用哪个更好,但值得一提的是,您可以在大多数现代浏览器的地址栏中键入这些“链接”,它就会运行。

复制并粘贴(或键入,chrome 似乎禁止这样做。)到您的地址栏

javascript:alert("test");

以及您可以将带有这些地址的链接保存到书签,以便它会在您单击书签的任何页面上运行该脚本。

于 2012-04-25T04:13:43.673 回答
1

仅此一项没有任何作用,但通常javascript:在一些 JavaScript 代码之前表示浏览器应该执行代码,而不是将 href 属性视为 URL。就是这样。

于 2012-04-25T04:04:21.603 回答
0

这可能旨在作为单击时不执行任何操作的参考,并且可能伴随设置 onclick 等以实际执行任何操作。

upd:虽然有人说将脚本放入 href 与将其放入 onclick 中是一样的,但还是有一些区别,例如右键单击时会发生什么(有些脚本绝对不应该在新选项卡等中打开)。尽管如此,我对这种做法的看法是它有点丑陋,不仅仅是因为当鼠标悬停在链接上时状态栏中的文本信息不足。

于 2012-04-25T04:14:13.040 回答
-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('howdy!')”),这可能是不受欢迎的(我觉得它特别难看)。

于 2012-04-25T04:19:40.223 回答