Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript A href指向url中未添加的位置_Javascript_Html - Fatal编程技术网

Javascript A href指向url中未添加的位置

Javascript A href指向url中未添加的位置,javascript,html,Javascript,Html,我的a href指向# 但每次在浏览器中添加到url时,单击符号# 例如,如果在我点击我的链接之前url是这样的http://mywebsite.com 但是在点击a href后,url看起来是这样的: 有没有办法避免这种行为?要避免这种情况,请尝试添加return false <a href="#" onclick="doingClick(); return false;">Link</a> 也可以使用void(0) 在 不要忘记返回函数的返回值。否则,您将

我的
a href
指向
#

但每次在浏览器中添加到url时,单击符号
#

例如,如果在我点击我的链接之前url是这样的
http://mywebsite.com

但是在点击
a href
后,url看起来是这样的:


有没有办法避免这种行为?

要避免这种情况,请尝试添加
return false

<a href="#" onclick="doingClick(); return false;">Link</a>

也可以使用void(0)




不要忘记返回函数的返回值。否则,您将只调用它而不挂起后续事件。

您可以添加style=“cursor:pointer;”而不是添加href 这与将其显示为超链接一样,没有页面内锚定效果

<a id="bla" onclick="return doingClick()" style="cursor:pointer;">Link</a>
链接

#
用于链接元素ID,在“空”HREF中使用时,它将始终添加到您的URL中。如果它真的让你恼火,你可以做的是将它从
位置删除。href
在你的
操作中单击
功能将href设置为空:

<a href="" id="bla" onClick="alert('Hi');">Bla<a>
Bla

仍然有效。

url没有指向任何地方。URL是
#
的相对URL,换句话说,URL解析为
#
,在本例中为
http://mywebsite.com#

要避免这种行为,您必须更改URL

如果有返回false的onclick处理程序,则应防止链接处于活动状态:

<a href="#" onclick="return doingClick();">link</a>

您还可以使用javascript:void(0)作为链接href


无论是哪种情况,当您使用javascript访问站点的某些部分时,请注意站点的可访问性会降低。那些禁用了javascript、没有启用javascript的浏览器或使用屏幕阅读器或其他可访问工具的用户可能无法使用该网站

如果您得不到更好的答案,您可以通过使用以下javascript在页面的最早位置(在正文的开头或头部)放置脚本标记来进行令人讨厌的解决方法:

if(document.location.href[document.location.href.length-1]=='#'){
    document.location.href = document.location.href.substring(0, document.location.href.length-2)
}

我不建议您这样做,因为当#在url中时会导致对服务器的双重请求,但如果必须的话,它就在这里。

因此我认为更好的方法是从
元素中删除
href

<a id="bla" class="href" >Bla</a>

当我查看
的源代码时,我想到了这个想法,因此
添加注释
按钮

虽然还有其他有效的解决方案,但我个人更喜欢这个较短的解决方案

<a href="javascript:;">Link</a>


另一个好处是,此解决方案不会滚动到窗口顶部。

是否尝试根本不添加“href”属性?这是我的首选选项。如果不告诉用户他们要点击的链接使用Javascript,我几乎会感到内疚,因此我经常使用
Javascript:void(0)
——尽管如此,您可能希望在
href
中放置一个真正的链接,并使用Javascript将其更改为
Javascript:void(0)
,这样没有JS的用户仍然可以使用Javascript。只是我的0.02这是真的,虽然我做了一些聪明的事情,但我检查了,我没有:(我添加了,只是为了将鼠标箭头改为指针,所以光标:指针;很适合用于:悬停图像。)
<a href="#" onclick="return doingClick();">link</a>
if(document.location.href[document.location.href.length-1]=='#'){
    document.location.href = document.location.href.substring(0, document.location.href.length-2)
}
<a id="bla" class="href" >Bla</a>
.href 
{
    color: #2289b8; //color of the link
    cursor: pointer;
}
<a href="javascript:;">Link</a>