我正在尝试发出一个put请求,以便在用户关闭浏览器时保存一些内容。 我正在使用角度,我尝试使用onbeforeunload和onunload事件,但没有让它以我想要的方式工作。我有一个我想要更新的资源。
$window.onbeforeunload = function(){
myResource.foo = closingBrowser();
myResource.$update();}
随着fiddler的运行,我发现这不会执行put请求。不是我使用$window.onunload
的时候。但是如果我向onbeforeunload
输入一个返回语句,则会弹出确认框,当我单击OK时,fiddler会显示put请求已完成。现在我不想要这个弹出窗口,我只想在用户关闭浏览器时PUT。
我有办法用这些方法做到这一点,还是我必须以其他方式解决它(建议非常感谢)?
更新
我做了一些测试,发现了一些不一致的行为。在Internet Explorer(11)中:如果我有return语句,则有经典的弹出窗口。但是如果我按下取消并返回页面,它只会发送PUT。如果我按OK退出,则不会发出PUT。
在Chrome中:如果我按取消返回,或者确定离开,则仍然发送PUT无关紧要。另一个“hack”(?)在chrome中工作但不是,即没有返回(没有弹出窗口,这是想要的行为),是在$update()
之后有一个循环,类似于:{{1} (或者只是for循环迭代几百万次也有效,但看起来更丑),chrome实际上发送了PUT(IE没有)。
您认为这将如何在IE中复制?
我没有对firefox做过大量的测试,但是我做的很少,看起来更像是chrome。
答案 0 :(得分:0)
你无法逃脱这个弹出窗口(“你想要关闭这个窗口bla bla bla ...”)。 我认为最好的解决方案是: