我已经看到网页中不时使用以下href。但是,我不明白这是尝试做什么或技术。有人可以详细说明吗?
<a href="javascript:;"></a>
答案 0 :(得分:209)
<a>
元素是无效的HTML,除非它具有href
或name
属性。
如果您希望它作为链接正确呈现(即带下划线,手形指针等),那么只有具有href
属性时才会这样做。
这样的代码有时被用作建立链接的方式,但无需在href
属性中提供实际的URL。开发人员显然希望链接本身不做任何事情,这是他所知道的最简单的方式。
他可能在其他地方有一些javascript事件代码,在点击链接时触发,这将是他想要实际发生的事情,但他希望它看起来像一个普通的<a>
标记链接。
一些开发人员使用href='#'
用于相同目的,但这会导致浏览器跳转到页面顶部,这可能不是必需的。并且他不能简单地将href留空,因为href=''
是返回当前页面的链接(即它会导致页面刷新)。
有很多方法可以解决这些问题。在href
中使用空位的Javascript代码就是其中之一,尽管它不是最佳解决方案,但确实有效。
答案 1 :(得分:30)
基本上不使用链接移动页面(或锚点),使用此方法启动javascript函数
<script>
function doSomething() {
alert("hello")
}
</script>
<a href="javascript:doSomething();">click me</a>
单击该链接将触发警报。
答案 2 :(得分:27)
有几种机制可以避免链接到达目的地。问题中的那个不太直观。
更清洁的选项是使用href="#no"
,其中#no
是文档中未定义的锚点。
您可以使用更多语义名称(如#disable或#action)来提高可读性。
该方法的好处:
<强>缺点:强>
由于<a>
元素不作为链接,因此在这些情况下,最佳选择是不使用<a>
元素而是使用<div>
并提供所需的类似链接的样式。
答案 3 :(得分:9)
<a href="javascript:alert('Hello');"></a>
只是简写:
<a href="" onclick="alert('Hello'); return false;"></a>
答案 4 :(得分: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>
答案 5 :(得分:7)
这是一种让链接在点击时完全没有任何作用的方式(除非Javascript事件绑定到它)。
这是一种运行Javascript而不是关注链接的方式:
<a href="Javascript: doStuff();">link</a>
当实际上没有javascript运行时(就像你的例子一样)它什么也没做。
答案 6 :(得分:4)
<a href="javascript:void(0);"></a>
javascript:
告诉浏览器要编写javascript代码
答案 7 :(得分:3)
旧线程,但我认为我只是补充说开发人员使用此构造的原因不是创建死链接,而是因为javascript URL由于某种原因没有正确传递对活动html元素的引用。
e.g。 handler_function(this.id)
作为onClick
使用,但不作为JavaScript网址。
因此,在编写符合标准的符合规范的代码之间做出选择,这些代码涉及您必须手动调整每个超链接的调用,或稍微非标准的代码,可以一次编写并在任何地方使用。
答案 8 :(得分:2)
因此,它通常用于在href
内而不是像onclick
这样的事件监听器中编写js代码,并避免在#
中使用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 inplimentation working too');
">Click here</a>
通过此代码,您甚至可以在其中编写js代码,而不仅仅是调用函数。
在chrome版本68.0.3440.106(正式版本)(64位)中进行了测试
在Firefox Quantom 61.0.1(64位)中进行了测试
答案 9 :(得分:0)
a:not([href]){光标:指针; }
答案 10 :(得分:-1)
始终正确呈现链接的最佳方法是使用css,如下所示:
a {cursor: pointer !important}
应该避免遵循线程中提到的不必要的事情。
答案 11 :(得分:-3)
1. Use that java script to Clear an HTML row Or Delete a row using the id set to a span and use JQuery to set a function to that span's click event.
2. Dynamically set the div html to a string variable and replace {id} with a 1 or 2 etc. cell of a larger div table and rows
<div class="table-cell">
<span id="clearRow{id}">
<a href="javascript:" style-"color:#c32029; align:right; font-size:8pt;">Clear</a>
</span>
</div>
<div class="table-cell">
<span id="deleteRow{id}">
<a href="javascript:" style-"color:#c32029; align:right; font-size:8pt;">Delete</a>
</span>
</div>
//JQuery - Clear row
$("#clearRow" + idNum).click(function(){
$("someIDOrWildcardSelector" + idNum).val("");
$("someIDOrWildcardSelector" + idNum).val("");
$("someIDOrWildcardSelector" + idNum).val("");
});
//JQuery to remove / delete an html row
$("#deleteRow" + idNum).click(function(){
//depending upon levels of parent / child use 1 to many .parent().parent().parent()
$(this).parent().remove();
});