JavaScript - 页面重定向


什么是页面重定向?

您可能遇到过这样的情况:您单击 URL 到达页面 X,但在内部您被定向到另一个页面 Y。这是由于页面重定向而发生的。这个概念与JavaScript 页面刷新不同。

您想要从原始页面重定向用户的原因可能有多种。我们列出了一些原因 -

  • 您不喜欢您的域名,并且正在迁移到一个新域名。在这种情况下,您可能希望将所有访问者引导至新网站。在这里,您可以维护旧域,但放置一个带有页面重定向的页面,以便所有旧域访问者都可以访问您的新域。

  • 您已经根据浏览器版本或其名称或可能基于不同的国家/地区构建了各种页面,然后您可以使用客户端页面重定向来将用户带到适当的页面,而不是使用服务器端页面重定向。

  • 搜索引擎可能已经对您的页面建立了索引。但是,在转移到另一个域时,您不希望失去通过搜索引擎访问的访问者。因此您可以使用客户端页面重定向。但请记住,这不应该是为了欺骗搜索引擎,它可能会导致您的网站被禁止。

页面重定向如何工作?

页面重定向的实现如下。

实施例1

在客户端使用 JavaScript 进行页面重定向非常简单。要将网站访问者重定向到新页面,您只需在头部添加一行,如下所示。

<html>
   <head>
      <script type = "text/javascript">
         <!--
            function Redirect() {
               window.location = "https://www.tutorialspoint.com";
            }
         //-->
      </script>
   </head>
   
   <body>
      <p>Click the following button, you will be redirected to home page.</p>
      
      <form>
         <input type = "button" value = "Redirect Me" onclick = "Redirect();" />
      </form>
      
   </body>
</html>

输出

实施例2

您可以在将网站访问者重定向到新页面之前向他们显示适当的消息。这需要一点时间延迟来加载新页面。下面的示例展示了如何实现它。这里setTimeout()是一个内置的 JavaScript 函数,可用于在给定的时间间隔后执行另一个函数。

<html>
   <head>
      <script type = "text/javascript">
         <!--
            function Redirect() {
               window.location = "https://www.tutorialspoint.com";
            }            
            document.write("You will be redirected to main page in 10 sec.");
            setTimeout('Redirect()', 10000);
         //-->
      </script>
   </head>
   
   <body>
   </body>
</html>

输出

You will be redirected to tutorialspoint.com main page in 10 seconds!

实施例3

以下示例展示了如何根据网站访问者的浏览器将其重定向到不同的页面。

<html>
   <head>     
      <script type = "text/javascript">
         <!--
            var browsername = navigator.appName;
            if( browsername == "Netscape" ) {
               window.location = "http://www.location.com/ns.htm";
            } else if ( browsername =="Microsoft Internet Explorer") {
               window.location = "http://www.location.com/ie.htm";
            } else {
               window.location = "http://www.location.com/other.htm";
            }
         //-->
      </script>      
   </head>
   
   <body>
   </body>
</html>