首页 > 解决方案 > 我可以在执行脚本以将用户重定向到另一个页面时停止解析所有其他代码吗?

问题描述

我正在尝试停止解析所有其他脚本。重定向用户的条件在加载时得到认可。我仍然看到很多样式表和 js 被解析。有没有办法杀死所有其他解析并继续重定向?

<script data-cfasync="false">
function MyFunc(){
    var x = -1; //For example
    if (x===-1){
        document.location = "myurl.tld";
        //I want to kill all other parsing or loading here and proceed with redirect
    }
}

window.onload = MyFunc();
</script>

标签: javascript

解决方案


您可以致电window.stop()

window.stop() 在当前浏览上下文中停止进一步的资源加载,相当于浏览器中的停止按钮。

请注意,将函数附加到load事件只会窗口完全加载后运行。如果您想立即尝试重定向(以便window.stop实际尽快停止进一步处理),请MyFunc立即致电。

function MyFunc(){
  var x = -1; //For example
  if (x===-1){
    window.stop();
    document.location = "myurl.tld";
  }
}
MyFunc();

或者,如果必须,请等待DOMContentLoaded,这将加载 DOM,但可能尚未加载所有脚本、图像和其他资源(load事件等待):

window.addEventListener('DOMContentLoaded', MyFunc);

推荐阅读