Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript window.onunload激发,然后用户单击停止_Javascript - Fatal编程技术网

Javascript window.onunload激发,然后用户单击停止

Javascript window.onunload激发,然后用户单击停止,javascript,Javascript,下面是我试图弄清楚的流程 用户点击我的页面。 用户在卸载和卸载之前单击一个链接并启动。在这里,我摆脱了我的一些链接中的href。 该页面现在暂时挂起,用户可以点击浏览器中的“停止”按钮。 由于页面仍在原始页面上,而不是请求并随后停止的新页面,因此HREF仍然为空。 有没有办法知道用户单击停止按钮时,他们是否仍在同一页面上 我脑子里想的唯一办法就是在onbeforeunload或unload中设置一个setTimeout,但我并不喜欢这样,因为有太多的变量使它仍然处于混乱状态。我最后做的是: wi

下面是我试图弄清楚的流程

用户点击我的页面。 用户在卸载和卸载之前单击一个链接并启动。在这里,我摆脱了我的一些链接中的href。 该页面现在暂时挂起,用户可以点击浏览器中的“停止”按钮。 由于页面仍在原始页面上,而不是请求并随后停止的新页面,因此HREF仍然为空。 有没有办法知道用户单击停止按钮时,他们是否仍在同一页面上


我脑子里想的唯一办法就是在onbeforeunload或unload中设置一个setTimeout,但我并不喜欢这样,因为有太多的变量使它仍然处于混乱状态。

我最后做的是:

window.unload = function(){
    var _href = $('selector').attr('href');
    $('selector').attr('href', '');

    setTimeout(function(){
        $('selector').attr('href', _href);
    }, 1500);
}

你为什么这么做?让用户选择不进入其他页面?你可以提供你自己的停止按钮。我说的是浏览器停止按钮,以及删除href会失败的场景。你不能在删除href之前捕获esc键或/和查找当前url吗?如果他们在浏览器中按下停止按钮,esc键将不会发生,我需要一段时间来检查href我不会吗?简单的解决办法是在onunload中什么都不做,但我想这不是一个选项。我并不认为超时解决方案有什么问题,除非下一个页面加载速度非常慢。另一个解决方案可能是添加一个覆盖整个站点的不可见链接。如果用户单击它,您可以重新初始化页面或重新加载页面。也许你应该将链接设置为透明颜色rgba0,0,0,3或其他颜色