在我将用户重定向到另一个网站之前,我想在正常的头标记内执行一个javascript代码,但我无法弄清楚如何实际使其工作,因此代码将被执行,访问者将被重定向。
我想要以下内容:
<html>
<head>
//script here
</head>
<body>
</body>
</html>
<?php header ('Location: example.com') ?>有没有人可以告诉我怎么做正确,这样它就不会返回任何‘头已经发送’的错误?
发布于 2013-01-27 00:24:56
如果访问者从您的站点通过以下链接访问此页面,您可以发送额外的数据,让您的服务器脚本知道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
但是,如果您确定启用了PHP,那么您可以在完成后让JavaScript执行重定向;如果url总是相同的,您可以省略JavaScript代码,只使用静态字符串:
<html>
<head>
<script>
//script here
location = <?php echo json_encode('http://www.example.org'); ?>;
</script>
</head>
<body>
</body>
</html>发布于 2013-01-27 00:24:01
使用output buffering
<?php
ob_start();
echo "Hello\n";
setcookie("cookiename", "cookiedata");
ob_end_flush();
?>发布于 2013-01-27 00:27:33
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>http://jsfiddle.net/W9dhW/
https://stackoverflow.com/questions/14538873
复制相似问题