在将用户重定向到另一个网站之前,我想在正常的标头标签中执行一个 javascript 代码,但我无法弄清楚如何使其真正工作,因此代码将被执行并且访问者将被重定向。
我想要以下内容:
<html>
<head>
//script here
</head>
<body>
</body>
</html>
<?php header ('Location: example.com') ?>
有人可以告诉我如何正确地做到这一点,所以它不会返回任何“标头已发送”错误吗?
在将用户重定向到另一个网站之前,我想在正常的标头标签中执行一个 javascript 代码,但我无法弄清楚如何使其真正工作,因此代码将被执行并且访问者将被重定向。
我想要以下内容:
<html>
<head>
//script here
</head>
<body>
</body>
</html>
<?php header ('Location: example.com') ?>
有人可以告诉我如何正确地做到这一点,所以它不会返回任何“标头已发送”错误吗?
使用输出缓冲:
<?php
ob_start();
echo "Hello\n";
setcookie("cookiename", "cookiedata");
ob_end_flush();
?>
如果访问者通过您网站的链接访问此页面,您可以发送其他数据以让您的服务器脚本知道 JavaScript 已启用;例如
$('a').each(function() {
var url = this.href;
if (url.indexOf("?") !== -1)
this.href = url + '&js=1';
else
this.href = url + '?js=1';
});
这将更改所有链接以包含一个特殊参数,该参数指示 JavaScript 是否已启用。如果你想运行的附加 JavaScript 代码也可以放在这里,那就更好了!
服务器脚本将使用类似 if (!empty($_GET['js'])) { ... }
编写一段 JavaScript(旧答案 2)或立即执行重定向。
旧答案
如果 JavaScript 被禁用,您可以发送Refresh
标头。
<?php
header('Refresh: 2; url=http://www.example.org');
?>
<html>
<head>
//script here
</head>
<body>
</body>
</html>
我不得不承认我没有尝试过,但很有可能它会起作用
旧答案 2
但是,如果您确定 JavaScript 已启用,则可以让 JavaScript 在完成后执行重定向;如果 url 始终相同,则省略 PHP 代码,只使用静态字符串:
<html>
<head>
<script>
//script here
location = <?php echo json_encode('http://www.example.org'); ?>;
</script>
</head>
<body>
</body>
</html>
content="<seconds>;url=http://www.the-url.com"
<head>
<meta http-equiv="REFRESH" content="10;url=http://www.the-domain-you-want-to-redirect-to.com">
</head>
<body>
<script>
alert("run before redirect");
</script>
</body>
Redirect user to other website after executing some JavaScript
<script type='text/javascript'>
alert('executing some javascript');
// redirecting to other website
window.location.href = "http://example.com";
</script>
You don't need (and cannot use) PHP to achieve what you require
您必须在 html 开始之前使用 php 标头
<?php header ('Location: example.com') ?>
<html>
<head>
//script here
</head>
<body>
</body>
</html>
注意:如果您使用<?php header('Location:example.com'); ?>
以下行,则意义较小,因为它将被重定向到最开始行的另一个页面。
这对于标头是不可能的Location
。如果您的响应包括一个,浏览器将被重定向并且不会执行任何 Javascript。
如果您想在客户端执行某些操作,请在获取重定向的 URL 之前执行此操作,或者在到达最终目标 URL 后执行此操作。