是否可以设置一个基本的HTML页面以在加载时重定向到另一个页面?


当前回答

如果您希望遵循现代web标准,则应避免纯HTML元重定向。如果无法创建服务器端代码,则应选择JavaScript重定向。

要支持禁用JavaScript的浏览器,请向noscript元素添加HTML元重定向行。noscript嵌套的元重定向与规范标记相结合,也有助于搜索引擎排名。

如果希望避免重定向循环,应使用location.replace()JavaScript函数。

正确的客户端URL重定向代码如下所示(带有Internet Explorer 8和更低版本的修复程序,且无延迟):

<!-- Pleace this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://stackoverflow.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0; URL=https://stackoverflow.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://stackoverflow.com/";
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
    {
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
        var referLink = document.createElement("a");
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->

其他回答

我在使用jQuery Mobile应用程序时发现了一个问题,在某些情况下,我的Meta头标记无法正确实现重定向(jQuery Mobile不会自动读取每个页面的头,因此在那里放置JavaScript也无效,除非将其包装得更复杂)。我发现在这种情况下最简单的解决方案是将JavaScript重定向直接放入文档正文,如下所示:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta http-equiv="refresh" content="0;url=myURL" />
    </head>

    <body>
        <p>You are not logged in!</p>
        <script language="javascript">
            window.location = "myURL";
        </script>
    </body>
</html>

这似乎在所有情况下对我都有效。

一旦页面加载,init函数就会启动并重定向页面:

<!DOCTYPE html>
<html>
    <head>
        <title>Example</title>
        <script>
            function init()
            {
               window.location.href = "www.wherever.com";
            }
        </script>
    </head>

    <body onload="init()">
    </body>
</html>

尝试使用:

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

注意:将其放在<head>部分。

此外,对于较旧的浏览器,如果您添加了一个快速链接,以防无法正确刷新:

<p><a href=“http://example.com/“>重定向</a></p>

将显示为

重新使用

这仍然允许您通过额外的点击到达您要去的地方。

这不需要任何JavaScript代码。将其写入HTML页面的<head>部分:

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

页面在0秒加载后,即可转到页面。

位于头部内部的以下元标记将告诉浏览器重定向:

<meta http-equiv="Refresh" content="seconds; url=URL"> 

将秒替换为重定向前等待的秒数,并将URL替换为要重定向到的URL。

或者,您可以使用JavaScript重定向。将其放置在页面上的任意位置的脚本标记中:

window.location = "URL"