这是我的代码,
<script language="JavaScript">
var url = "http://localhost:8888/uploads/"+<? $name ?>+"/output.txt";
setTimeout("top.location.href = url",1000);
</script>
$name
是一个 PHP
变量,它具有我要重定向到的目录的名称。
不用说,它不起作用。它出什么问题了?我对 javascript
了解不多,所以我可能做了一些愚蠢的事情
谢谢
最佳答案
如果您混合使用 PHP 和 JavaScript,始终建议您检查发送到浏览器的输出:右键单击您的网站并单击查看源代码!
JavaScript 不关心发送给它的内容是静态 HTML、来自数据库还是由 PHP 生成。如果它在输出中,它将对其进行解析。
如果您这样做了,您会注意到您没有回显
$name
变量。
<script language="JavaScript">
var url = "http://localhost:8888/uploads/"+<? echo $name ?>+"/output.txt";
setTimeout("top.location.href = url",1000);
</script>
但这会给你
<script language="JavaScript">
var url = "http://localhost:8888/uploads/"+ foo +"/output.txt";
setTimeout("top.location.href = url",1000);
</script>
这不是有效的 JavaScript,因为 foo
现在是 JS 变量,而不是字符串。
所以你应该:
<script language="JavaScript">
var url = "http://localhost:8888/uploads/<? echo $name ?>/output.txt";
setTimeout("top.location.href = url",1000);
</script>
此外,不推荐将字符串传递给setTimeout
(或setInterval
);出于同样的原因反对使用 eval()
,所以你最终应该得到这样的东西:
<script language="JavaScript">
var url = "http://localhost:8888/uploads/<? echo $name ?>/output.txt";
setTimeout(function () {
top.location.href = url
},1000);
</script>
关于php - JavaScript 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6218313/