我已将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毫秒它可以正常工作,但这似乎在浏览器和网络速度之间保持不变。当网站使用history.pushState
时,是否有更好的方法来获取正确的href网址?
注意:我不拥有执行代码的域