6

我有一个回显 javascript 以导航到不同页面的函数。进行导航时,

echo 'window.location.href="'.$url.'";'; 

不起作用,只是将其打印在屏幕上。

"window.location.href="./index.php";

我以这种方式使用我的功能:redirect("./index.php");

我的php函数如下

  function redirect($url)
   {    
    if (!headers_sent())
    {    
      header('Location: '.$url);
      exit;
    }
   else
    {      
      echo '<script type="text/javascript">';
      echo 'window.location.href="'.$url.'";';
      echo '</script>';
      echo '<noscript>';
      echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
      echo '</noscript>'; exit;
   }
} 
4

3 回答 3

4

您的浏览器将响应视为纯文本。

在您响应之前添加一个Content-Type: text/html\n 加号,将您的内容包装在<html></html>标签内。

于 2012-04-11T18:52:34.167 回答
3

试试这个方法。

<?php
$yourURL="http://www.stackoverflow.com";
echo ("<script>location.href='$yourURL'</script>");
?>
于 2012-04-11T18:53:34.260 回答
1

为什么不只使用输出缓冲而根本不必处理 JavaScript 或元重定向?

<?php
// Top of your page
ob_start();

// Code goes here

// Redirect
if ($redirect_is_necessary)
{
    header('Location: '.$url);
    exit;
}

// Rest of page goes here

// Bottom of page
ob_end_flush();
?>
于 2012-04-11T19:02:45.830 回答