根据规范,
href属性必须返回关联的当前地址 文档对象,作为绝对URL。
在设置时,如果Location对象的关联Document对象具有 完全加载,然后用户代理必须表现为assign() 已使用新值作为参数调用方法。除此以外, 用户代理必须像调用replace()方法一样 以新值为参数。
来源:http://www.w3.org/TR/2011/WD-html5-20110113/history.html#location
我有一个页面(比如页面“A”),用户可能会在文档完全加载之前开始与UI进行交互,其中一些交互会导致我设置一些分析值并重定向用户(比如页面“ B“)by
document.location.href = new_location;
但是,如果用户足够快地执行此操作,则页面“A”根本不包含在窗口历史记录中,即如果用户在登录页面“B”后按下“返回”按钮,则会将其重定向到任何页面在“A”之前出现(即页面“A”被完全跳过)。
我尝试使用document.location.assign
没有运气,我试图将重定向包装在$(document).ready
内而没有运气。那么,是否可以在文档加载之前设置location.href
,但仍然将其添加到历史记录中(而不是替换)?
注意:我只在WebKit浏览器(Chrome,Opera,Safari测试)上遇到此问题,而不是在Firefox上。