javascript - 我可以在执行脚本以将用户重定向到另一个页面时停止解析所有其他代码吗?
问题描述
我正在尝试停止解析所有其他脚本。重定向用户的条件在加载时得到认可。我仍然看到很多样式表和 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>
解决方案
您可以致电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);
推荐阅读
- javascript - Javascript 在知道字符串是什么时返回“未定义”
- c++ - main() 的 SDL 库未定义符号
- swiftui - 如何在 SwiftUI 中一键连续播放两种声音
- python - 我在 1 个文件夹中有多个 txt 文件,我需要使用 python 将 txt 数据插入 MySql 表
- reactjs - 如何为 createSlice() 的 extraReducers 编写测试(Jest + Enzyme)?
- c# - 使用身份调用 Web API
- flutter - 如何使用条形码从 api 中提取信息并将其解析到用户详细信息小部件屏幕 - 在颤振中
- c# - 尝试在实体中深度克隆除 Id 之外的行值
- c# - c# byte[] leftshift 用于减少输出
- android - Intent setAction ACTION_SNOOZE 退休了?