我已将 click 事件处理程序附加到一个锚标记checkValid
,该标记验证元素并使用 setTimeout 为 0 调用实际处理程序 [允许浏览器继续执行它]。
//Code is just illustration
function checkValid() {
if(valid) {
setTimeout(reloadDiv, 0);
}
}
function reloadDiv() {
console.log(window.location.href);
}
相同锚标记的默认处理程序使用 更改窗口位置history.pushState
。
我预计,由于 setTimeout(reloadDiv, 0) 我将window.location.href
事件安排到队列末尾时会变得正确。
但它没有发生。如果我将 setTimeout 时间设置为 500 毫秒,它可以正常工作,但这似乎在浏览器和网络速度之间并没有保持不变。当网站使用时,是否有更好的方法来获取正确的 href url history.pushState
?
注意:我不拥有执行代码的域