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