我需要在开始加载时重定向页面(例如,加载页面的头部),并且一旦重定向,就阻止/停止页面内容的其余部分加载,其余的脚本执行。
如果我在打开HEAD标签并将页面重定向到另一个页面后的第一行放置此代码(window.location =“/ other-page-url”;),它是否会停止执行下一个脚本?我想确定,如果有,比方说,在第二行调用了一些计数器脚本,在重定向之后,它将不会执行。
可能是JavaScript有一些停止页面加载/渲染的方法?
将用户重定向到其他页面后,当前页面将立即停止执行。
您可以在任何<meta>
标记之前使用<head>
中的<script>
标记执行任何Javascript之前执行此操作:
<meta http-equiv="Refresh" content="0; url=http://www.example.com/">
这会在遇到标记时将浏览器重定向到example.com。
我在Windows上的Chrome中进行了广泛的测试,并在https://stackoverflow.com/a/24070373/5749914的讨论中做了笔记。阐述Joseph Silbur的回答:
将用户重定向到其他页面后,当前页面将立即停止执行。
head
标记中的JavaScript在文档正文中的任何脚本标记之前执行。虽然Chrome在script
标记内请求body
标记,但这些脚本不会被执行。唯一执行的代码是head
标记中的JavaScript。
另外值得注意的是,Chrome会在重定向页面之前触发DOMContentLoaded
事件。除非您有专门听取该事件的内容,否则这无关紧要。
所以,是的,window.location = "/other-page-url"
工作,只要它是head
标签中唯一的代码。