href表达式<;a href=";javascript:&引用&燃气轮机</a>;做
我经常在网页中看到以下href。然而,我不明白这是想做什么或技术。有人能详细说明一下吗href表达式<;a href=";javascript:&引用&燃气轮机</a>;做,javascript,Javascript,我经常在网页中看到以下href。然而,我不明白这是想做什么或技术。有人能详细说明一下吗 <a href="javascript:;"></a> 这是一种使链接在单击时完全不起任何作用的方法(除非绑定了Javascript事件) 这是一种运行Javascript的方式,而不是通过以下链接: <a href="Javascript: doStuff();">link</a> 当没有实际运行的javascript时(如您的示例),它什么也不做。
<a href="javascript:;"></a>
这是一种使链接在单击时完全不起任何作用的方法(除非绑定了Javascript事件) 这是一种运行Javascript的方式,而不是通过以下链接:
<a href="Javascript: doStuff();">link</a>
当没有实际运行的javascript时(如您的示例),它什么也不做。
<a href="javascript:void(0);"></a>
javascript:
告诉浏览器将要编写javascript代码
<a href="javascript:alert('Hello');"></a>
只是以下的简写:
<a href="" onclick="alert('Hello'); return false;"></a>
基本上不用链接来移动页面(或锚定),而是使用此方法启动javascript函数
函数doSomething(){
警报(“你好”)
}
单击链接将触发警报。元素是无效的HTML,除非它具有href
或name
属性
如果您希望它正确呈现为链接(即带下划线、指针等),则它只有在具有href
属性时才会这样做
因此,这样的代码有时用作创建链接的方式,但不必在href
属性中提供实际的URL。开发人员显然希望链接本身不做任何事情,这是他知道的最简单的方法
他可能在其他地方有一些javascript事件代码,这些代码在点击链接时被触发,这将是他希望实际发生的事情,但他希望它看起来像一个普通的
标记链接
有些开发人员出于同样的目的使用href='#'
,但这会导致浏览器跳转到页面顶部,而这可能是不需要的。他不能简单地将href留空,因为href='
是指向当前页面的链接(即它会导致页面刷新)
这些事情是有办法解决的。在
href
中使用空的Javascript代码是其中之一,虽然这不是最好的解决方案,但确实有效。有几种机制可以避免链接到达其目的地。这个问题的答案不太直观
一个更简洁的选项是使用href=“#no”
,其中#no
是文档中未定义的锚点
您可以使用更具语义的名称,如#disable或#action,以提高可读性
该方法的好处:
- 避免空href=“#”的“移动到顶部”效果
- 避免使用javascript
- 必须确保文档中未使用锚定名称
- URL将更改为包含(不存在的)锚定为片段,并创建新的浏览器历史记录条目。这意味着,单击链接后单击“后退”按钮将不会按预期进行操作
元素不充当链接,因此在这些情况下,最好的选择不是使用
元素,而是使用
,并提供所需的类似链接的样式。请参阅:
<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>
旧线程,但我想我只是补充一下,开发人员使用此结构的原因不是创建死链接,而是因为javascript URL由于某些原因无法正确传递对活动html元素的引用 e、 g.
handler\u函数(this.id)
用作onClick
,但不作为javascript URL
因此,您可以选择编写学究式的符合标准的代码(需要手动调整每个超链接的调用),或者编写一次就可以在任何地方使用的稍微非标准的代码。始终正确呈现链接的最佳方法是使用css,如下所示:
a {cursor: pointer !important}
应该避免遵循线程中提到的不必要的东西。它用于在
href
中编写js代码,而不是像onclick
这样的事件侦听器,并避免href
中的
链接,以使a
标记对HTML有效
有趣的事实
我对如何在href
属性中使用javascript:
进行了研究,得到的结果是我可以在其中写入多行
<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>
- 在chrome版本68.0.3440.106(官方版本)中测试(64位)
- 在Firefox Quantum 61.0.1(64位)中测试
href
,遵循<a role="button" aria-pressed="false">Underlined + Pointer</a>
<a role="button" aria-pressed="false" class="btn">Pointer</a>
1。使用该java脚本清除HTML行或使用设置为span的id删除行,并使用JQuery将函数设置为该span的click事件。
2.动态地将div html设置为字符串变量,并将{id}替换为较大div表和行的1或2等单元格
//JQuery-清除行
$(“#clearRow”+idNum)。单击(函数(){
$(“someIDOrWildcardSelector”+idNum).val(“”);
$(“someIDOrWildcardSelector”+idNum).val(“”);
$(“someIDOrWildcardSelector”+idNum).val(“”);
});
//JQuery删除/删除html行
$(“#删除行”+idNum)。单击(函数(){
//根据父级/子级的级别,使用1到多个。parent().parent().parent()
$(this.parent().remove();
});
如果我没弄错的话,你可以用这个调用JS方法。。javascript:SomeFunction()它不会尝试做任何不能用适当的点击处理程序更好地处理的事情。您应该避免这种情况,因为它丑陋、不可访问,并导致人们在不应该使用它的地方使用javascript:
方案
<a role="button" aria-pressed="false">Underlined + Pointer</a>
<a role="button" aria-pressed="false" class="btn">Pointer</a>
a[role="button"]:not([href]):not(.btn) { text-decoration: underline; }
a[role="button"]:not([href]) { cursor: pointer; }
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();
});