我想在将用户重定向到另一个网站之前在正常的标头标签中执行javascript代码,但我无法弄清楚如何实际使其工作,因此代码将被执行并且访问者将被重定向
我想要以下内容:
<html>
<head>
//script here
</head>
<body>
</body>
</html>
<?php header ('Location: example.com') ?>
有人可以告诉我如何正确地执行此操作,因此它不会返回任何已发送的标题&#39;错误?
答案 0 :(得分:3)
<?php
ob_start();
echo "Hello\n";
setcookie("cookiename", "cookiedata");
ob_end_flush();
?>
答案 1 :(得分:3)
如果访问者通过点击您网站上的链接访问此页面,您可以发送其他数据,让您的服务器脚本知道JavaScript已启用; e.g。
$('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>
答案 2 :(得分:2)
<小时/>
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>
答案 3 :(得分:1)
使用Location
标头无法做到这一点。如果您的回复包含一个,则会重定向浏览器,并且不会执行任何Javascript。
如果您想在客户端执行某些操作,请在获取重定向的URL之前执行此操作,或者在登陆最终目标URL后执行此操作。
答案 4 :(得分:0)
执行一些JavaScript后,将用户重定向到其他网站
<script type='text/javascript'>
alert('executing some javascript');
// redirecting to other website
window.location.href = "http://example.com";
</script>
您不需要(也不能使用)PHP来实现您的需求
答案 5 :(得分:0)
你必须在html启动之前使用php标头
<?php header ('Location: example.com') ?>
<html>
<head>
//script here
</head>
<body>
</body>
</html>
注意:如果您使用<?php header('Location:example.com'); ?>
,则以下行的含义较少,因为它会在最开始的行重定向到另一个页面。