Javascript 在遵循此链接后,在绑定到锚链接的onclick函数中获取URL/anchor 上下文

Javascript 在遵循此链接后,在绑定到锚链接的onclick函数中获取URL/anchor 上下文,javascript,html,Javascript,Html,CSS缺少一个“a:current”选择器或对当前URL的访问权限,因此我尝试编写vanilla JS来为菜单中指向同一页面/锚的链接着色 每次单击锚链接时,我都会运行一个函数,检查每个菜单链接是否与新锚对应。问题:document.URL指的是单击链接之前的URL。请注意,我想我可以用不同的方式给我的链接上色,但这不是问题的一部分(如果你有建议,你可以评论) 要复制的代码 var check_anchor=函数() { document.getElementById('url_log')。

CSS缺少一个“a:current”选择器或对当前URL的访问权限,因此我尝试编写vanilla JS来为菜单中指向同一页面/锚的链接着色

每次单击锚链接时,我都会运行一个函数,检查每个菜单链接是否与新锚对应。问题:document.URL指的是单击链接之前的URL。请注意,我想我可以用不同的方式给我的链接上色,但这不是问题的一部分(如果你有建议,你可以评论)

要复制的代码

var check_anchor=函数()
{
document.getElementById('url_log')。innerHTML=document.url;
}
URL是


这就是
窗口。onhashchange
非常方便

这根本不是一个愚蠢的问题

在事件处理程序中,只要您想知道新URL是什么,就可以使用
location.href
或使用
location.hash

window.onhashchange = function () {
    console.log(location.hash);  // new hash/anchor location
}

似乎工作得很好,并且比将onclick事件应用于所有锚链接更容易。非常感谢。出于好奇,在执行“正常事件”(例如选中复选框)后,是否有方法调用onclick/on*函数(我没有尝试,但我认为它的工作方式是相同的:调用事件函数,然后选中复选框)?@Seipas是的,大多数事件都有一个方法可以调用元素。例如,在
onhashchange
事件处理程序中,可以有
document.getElementById(“我的元素”).focus()
.click()
.blur()
等。做你要做的事情不应该超过使用
。click()
但是,如果您最终想要更进一步,比如在输入字段中输入文本,那么在尝试检测其他地方的更改时会遇到问题,因为简单地设置
element.value=“new value”
不会触发
onChange
事件。希望这有帮助:)好吧,谢谢你的解释,但这不是我的意思。有没有办法执行类似$$或$onclick=“this.followthelink();foo();”$的操作?您上面的解决方案很好,但我只是想知道,我觉得有一天我可能会这样做。啊,那么您只需说
if(location.hash==“#id”){return foo()}