链接中javascript:;
属性中保留的href
的含义是什么?
像
<a href="javascript: ... ;">Link</a>
答案 0 :(得分:5)
如果您需要传递需要运行的javascript 代码段而不是元素的默认行为,那么您可以使用此javascript: ;
语法。
例如
<a href="javascript:alert('');">Test</a> <!-- Runs on the click of the link -->
同样,您也可以将其与其他事件相结合,例如onclick
,onchange
等,但这确实是不是,因为您可以直接执行代码段。
我多年来看到的用途是:
<a href="javascript:void(0);">Test</a>
<form action="javascript:void(0);">..</form>
答案 1 :(得分:2)
javascript:;在href中,与在“onclick”属性中放置内容相同。
因此,
<a href="javascript:do_something();">Link</a>
与
相同<a href="#" onclick="do_something();">Link</a>
我不确定哪个更好用,但值得一提的是你可以在大多数现代浏览器的地址栏中键入这些“链接”并运行它。
复制并粘贴(或键入,Chrome似乎禁止此操作。)到您的地址栏
javascript:alert("test");
以及您可以将带有这些地址的链接保存到书签,以便它可以在您单击书签的任何页面上运行该脚本。
答案 2 :(得分:1)
仅此一项无效,但通常 javascript:位于某些JavaScript代码之前,表示浏览器应执行代码而不是将href属性视为URL。多数民众赞成。
答案 3 :(得分:0)
这可能是作为一个参考,在点击时什么都不做,可能伴随着设置onclick等实际做任何事情。
更新:虽然有人说将脚本放在href中与将其放入onclick相同,但是有一些差异,例如右键单击时发生的事情(有些脚本肯定不应该在新标签中打开等) 。不过,我对这种做法的看法是,它有点难看,而且不仅仅是因为当鼠标悬停在链接上时,状态栏中的文字无法提供信息。答案 4 :(得分:-2)
你可以想象,有人复制“javascript:;”进入网址框并按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!')”),这可能是不受欢迎的(我发现它特别难看。