Javascript “window.location” 停止 PHP 重定向


Javascript "window.location" stopping PHP redirect

基本上有一个调用函数和一个计时器。计时器通过Javascript倒计时直观地显示,同时有一个PHP重定向,它已被设置为与Javascript倒计时相同的长度。但是,window.location 调用函数阻止 PHP 标头重定向工作。谁能告诉我为什么?

Javascript window.location 函数(位于 body 之后,因为它阻止了它下面的代码被处理:

<?
echo"
<script type='text/javascript'>
    window.location='callto:".$to."';
</script>";
?>

PHP 标头重定向(在 html 标记上方(:

<?php
header( "refresh:5;url=wherever.php" );
?>

如果我删除 window.location 函数,重定向就会起作用。

你应该

只用JavaScript重定向,不要用PHP重定向。 当你已经在用JavaScript做的时候,为什么要做PHP重定向呢?

为了延迟重定向,你应该使用 Javascript setTimetout(( 函数,例如:

setTimeout(function () {document.location = 'detination';}, time_in_miliseconds);
 header( "refresh:5;url=wherever.php" );

这不是有效的重定向标头!

header('Location: http://example.com/sub/script.php');

这是一个有效的重定向标头!

要使脚本根据需要等待,您需要在其上添加睡眠:

sleep(5);
header('Location: http://example.com/sub/script.php');

而不是javascript重定向,你应该用简单的html和href="callto:..."渲染一个调用链接。如果要在没有用户交互的情况下显示呼叫屏幕,则只需在链接上触发单击事件。