Joh*_*ore 208 javascript
我已经看到网页中不时使用以下href.但是,我不明白这是尝试做什么或技术.有人可以详细说明吗?
<a href="javascript:;"></a>
Run Code Online (Sandbox Code Playgroud)
Spu*_*ley 225
一个<a>元件是无效的HTML,除非它有任一种href或name属性.
如果你想让它正确地呈现为链接(即带下划线,手形指针等),那么只有它具有href属性才会这样做.
因此,这样的代码有时被用作创建链接的方式,但不必在href属性中提供实际的URL .开发人员显然希望链接本身不做任何事情,这是他知道的最简单方法.
他可能在其他地方有一些javascript事件代码,在点击链接时触发,这将是他想要实际发生的事情,但他希望它看起来像普通的<a>标记链接.
一些开发人员使用href='#'相同的目的,但这会导致浏览器跳转到页面顶部,这可能不是想要的.并且他不能简单地将href留空,因为href=''它是返回当前页面的链接(即它导致页面刷新).
有办法解决这些问题.在href其中一个中使用一个空的Javascript代码,虽然它不是最好的解决方案,但确实有效.
Eon*_*dan 34
基本上不使用链接来移动页面(或锚点),使用此方法启动javascript函数
<script>
function doSomething() {
alert("hello")
}
</script>
<a href="javascript:doSomething();">click me</a>
Run Code Online (Sandbox Code Playgroud)
单击该链接将触发警报.
Pau*_*ner 28
有几种机制可以避免链接到达目的地.问题中的那个不太直观.
的清洁器的选择是使用href="#no"其中#no是在文档中的非限定的锚.
您可以使用更多语义名称(如#disable或#action)来提高可读性.
方法的好处:
缺点:
由于<a>元素不是一个链接,因此在这些情况下,最好的选择是不使用<a>元素而是使用元素,<div>并提供所需的类链接样式.
<a href="javascript:alert('Hello');"></a>
Run Code Online (Sandbox Code Playgroud)
只是简写:
<a href="" onclick="alert('Hello'); return false;"></a>
Run Code Online (Sandbox Code Playgroud)
它用于在内部编写 js 代码,href而不是像事件侦听器那样onclick避免#链接,href以使a标签对 HTML 有效。
我研究了如何javascript:在href属性内部使用,得到了可以在其中写多行的结果!
<a href="
javascript:
a = 4;
console.log(a++);
a += 2;
console.log(a++);
if(a < 6){
console.log('a is lower than 6');
}
else
console.log('a is greater than 6');
function log(s){
console.log(s);
}
log('function implementation working too');
">Click here</a>
Run Code Online (Sandbox Code Playgroud)
在 chrome 版本 68.0.3440.106(官方版本)(64 位)中测试
在 Firefox Quantum 61.0.1(64 位)中测试
小智 8
参考:
<a href="Http://WWW.stackoverflow.com">Link to the website opened in different tab</a>
<a href="#MyDive">Link to the div in the page(look at the chaneged url)</a>
<a href="javascript:;">Nothing happens if there is no javaScript to render</a>
Run Code Online (Sandbox Code Playgroud)
这是一种使链接在单击时完全没有任何作用的方式(除非Javascript事件绑定到它).
这是一种运行Javascript而不是关注链接的方法:
<a href="Javascript: doStuff();">link</a>
Run Code Online (Sandbox Code Playgroud)
当实际上没有javascript运行时(就像你的例子)它什么都不做.
<a href="javascript:void(0);"></a>
Run Code Online (Sandbox Code Playgroud)
javascript: 告诉浏览器要编写 javascript 代码