Javascript IE:Back和Refresh按钮在onbeforeunload事件和url标签更改上的行为不同

Javascript IE:Back和Refresh按钮在onbeforeunload事件和url标签更改上的行为不同,javascript,internet-explorer,onbeforeunload,Javascript,Internet Explorer,Onbeforeunload,步骤: 在ie11(如www.baidu.com)中打开一个网站,在控制台中键入: window.onbeforeunload = function(){return "aaa";} top.location = location.href+"#?id=aaa" top.location = location.href+"#?id=aaa" 按刷新按钮,弹出警报,选择停留在此页面 在控制台中,键入: window.onbeforeunload = function(){return "a

步骤:

  • 在ie11(如www.baidu.com)中打开一个网站,在控制台中键入:

    window.onbeforeunload = function(){return "aaa";}
    
    top.location = location.href+"#?id=aaa"
    
    top.location = location.href+"#?id=aaa"
    
  • 刷新按钮,弹出警报,选择停留在此页面

  • 在控制台中,键入:

    window.onbeforeunload = function(){return "aaa";}
    
    top.location = location.href+"#?id=aaa"
    
    top.location = location.href+"#?id=aaa"
    
    现在url应该是www.baidu.com/#?id=aaa

  • 后退按钮,工作正常,返回www.baidu.com

  • 再次按后退按钮,弹出警报,选择停留在此页面

  • 在控制台中,键入:

    window.onbeforeunload = function(){return "aaa";}
    
    top.location = location.href+"#?id=aaa"
    
    top.location = location.href+"#?id=aaa"
    
    现在url应该是www.baidu.com/#?id=aaa

  • 按后退按钮

    预计:返回www.baidu.com,Chrome Opera Firefox全部返回www.baidu.com

    实际结果:弹出警告,如果您选择离开此页面,您将重定向到www.baidu.com之前的页面

  • 如何解决这个问题,我想像Chrome一样返回www.baidu.com

    请帮忙

    我试过使用history.pushState,它在ie11中运行良好,但ie9没有history.pushState