条件JS重定向

时间:2015-10-14 07:06:33

标签: javascript php

我遇到了php头重定向无法在safari上工作的问题

if (!isset($lang))
{
header('Location: http://domain.com/en/home');
}

我已经读过这可以用JS做得相当简单,但是如果设置了$ lang,就不知道怎么做条件。

应该,我只是在“php if”中执行js,或者有更好/更聪明的方法来执行它。

感谢。

4 个答案:

答案 0 :(得分:1)

首先,如果设置了重定向标题,则应该停止执行php:

if (!isset($lang))
{
     header('Location: http://domain.com/en/home');
     exit;
}

注意:要使其正常工作,您需要先设置此标头,然后再设置任何doctype。此外,exit可防止将任何其他内容发送到broswer(内容,其他标题等)。混合标题可能会导致不必要的行为。

其次,你可以这样做:

if (!isset($lang))
{
     ?>
     <script>
     window.location = "http://domain.com/en/home";
     </script>
     <?php
}  

答案 1 :(得分:1)

使用Java Script

if (!isset($lang))
{
  ?>

    <script>
    location.href = "http://domain.com/en/home";
    </script>

  <?php
}

答案 2 :(得分:1)

您可以尝试使用ob_start()

ob_start()//Define at the top of the php page.
if (!isset($lang))
{
header('Location: http://domain.com/en/home');
exit;
}

答案 3 :(得分:1)

您可以使用echo打印HTML代码<script>,并将JavaScript代码放在此代码中。

if (!isset($lang)){
   echo "
       <script>
          window.location = "http://domain.com/en/home";
       </script>
    ";
}