Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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.location或在当前页面上重新加载?_Javascript - Fatal编程技术网

Javascript 如何防止脚本更改window.location或在当前页面上重新加载?

Javascript 如何防止脚本更改window.location或在当前页面上重新加载?,javascript,Javascript,我希望防止第三方脚本更改window.location和/或使用Javascript重新加载当前页面。是否有方法监视位置更改或窗口重新加载事件并取消它们。我无法控制执行此操作的JavaScript库,我需要在关键操作期间临时防止页面重新加载。我不是想阻止用户重新加载页面,只是想阻止其他脚本。jQuery解决方案是受欢迎的 谢谢 编辑:解决方案只需在Firefox中工作。为了防止重新加载(),您可以执行以下操作: var canReload = true; var realReload = win

我希望防止第三方脚本更改window.location和/或使用Javascript重新加载当前页面。是否有方法监视位置更改或窗口重新加载事件并取消它们。我无法控制执行此操作的JavaScript库,我需要在关键操作期间临时防止页面重新加载。我不是想阻止用户重新加载页面,只是想阻止其他脚本。jQuery解决方案是受欢迎的

谢谢


编辑:解决方案只需在Firefox中工作。

为了防止
重新加载()
,您可以执行以下操作:

var canReload = true;
var realReload = window.reload;
window.reload = function() {
  if (canReload) { 
    realReload();
  }
}

基本上用您自己的函数覆盖
reload
函数。我不确定在属性分配中也能做到这一点(其中设置了
window.location
)。您可以查看Firefox的自定义getter/setter(
\uuuu defineSetter\uuuu
)函数,并为
窗口的
位置
属性创建一个setter,如果您不信任该脚本,您可能不应该包含它。否则,它会监视用户,
发出警报
消息,加载其他第四方脚本等等。@Kobi-我相信脚本,它只是喜欢在不合适的时候刷新页面,就像在ajax调用或ajaxed文件上传时,我的脚本那样。在这种情况下,最好的解决方案可能是发送一封愤怒的电子邮件
:)
。我同意,很可能是因为某种原因,它正在重新加载页面。如果可能的话,我会把剧本拿出来或者做一个新的。肮脏的eww手势