firefox在每个document.write()之后创建新历史记录的解决方法

时间:2013-10-27 22:34:43

标签: firefox document.write

在每个document.write()创建新的历史记录后,在Firefox中

,所以如果在页面加载时调用document.write(),当用户按下按钮返回历史记录时,firefox会将他带到当前运行文档的页面.write()再次创建另一个历史记录,所以即使按下另一个后退按钮也无济于事并将他带到他想要的地方

简单的解决方法是:

function onbeforeunload(e) 
{
    setTimeout(function() { window.history.go(-2);  }, 0);
}
window.addEventListener("beforeunload", onbeforeunload, true);

但是它不会让用户去任何链接或在地址栏中键入任何地址然后去那里,那么还有另一种修复Firefox的方法吗?

更好的方法是使用onpopstate事件,但在document.write()

之后它在firefox中不起作用

并且不,此处必须使用document.write()

1 个答案:

答案 0 :(得分:0)

使用document.open运行document.write,同时保持历史记录不变:

<script>
  document.open("text/html",document.write("foo") );
</script>

<强>参考