重定向页面并防止页面的其余部分加载和脚本执行

问题描述 投票:4回答:3

我需要在开始加载时重定向页面(例如,加载页面的头部),并且一旦重定向,就阻止/停止页面内容的其余部分加载,其余的脚本执行。

如果我在打开HEAD标签并将页面重定向到另一个页面后的第一行放置此代码(window.location =“/ other-page-url”;),它是否会停止执行下一个脚本?我想确定,如果有,比方说,在第二行调用了一些计数器脚本,在重定向之后,它将不会执行。

可能是JavaScript有一些停止页面加载/渲染的方法?

javascript redirect browser dom-events
3个回答
-2
投票

将用户重定向到其他页面后,当前页面将立即停止执行。


0
投票

您可以在任何<meta>标记之前使用<head>中的<script>标记执行任何Javascript之前执行此操作:

<meta http-equiv="Refresh" content="0; url=http://www.example.com/">

这会在遇到标记时将浏览器重定向到example.com。


0
投票

我在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标签中唯一的代码。

© www.soinside.com 2019 - 2024. All rights reserved.