Cor*_*rey 1 javascript php redirect
这是我的代码,
<script language="JavaScript">
var url = "http://localhost:8888/uploads/"+<? $name ?>+"/output.txt";
setTimeout("top.location.href = url",1000);
</script>
Run Code Online (Sandbox Code Playgroud)
$name是一个PHP变量,它具有我尝试重定向到的目录的名称.
不用说,它不起作用.它出什么问题了?我不太了解javascript所以我可能做了一些愚蠢的事情
谢谢
如果您将PHP与JavaScript混合使用,建议您检查发送到浏览器的输出:右键单击您的网站并单击查看源代码!
JavaScript不关心发送给它的内容是静态HTML,数据库还是PHP生成的内容.如果它在输出中,它将解析它.
如果你这样做,你会发现,你不echo"荷兰国际集团的$name变量.
<script language="JavaScript">
var url = "http://localhost:8888/uploads/"+<? echo $name ?>+"/output.txt";
setTimeout("top.location.href = url",1000);
</script>
Run Code Online (Sandbox Code Playgroud)
但那会给你
<script language="JavaScript">
var url = "http://localhost:8888/uploads/"+ foo +"/output.txt";
setTimeout("top.location.href = url",1000);
</script>
Run Code Online (Sandbox Code Playgroud)
哪个不是有效的JavaScript,因为foo现在是JS变量,而不是字符串.
所以你应该:
<script language="JavaScript">
var url = "http://localhost:8888/uploads/<? echo $name ?>/output.txt";
setTimeout("top.location.href = url",1000);
</script>
Run Code Online (Sandbox Code Playgroud)
此外,不建议将字符串传递给setTimeout(或setInterval); 出于同样的原因反对使用eval(),所以你应该最终得到这样的东西:
<script language="JavaScript">
var url = "http://localhost:8888/uploads/<? echo $name ?>/output.txt";
setTimeout(function () {
top.location.href = url
},1000);
</script>
Run Code Online (Sandbox Code Playgroud)
传递一个函数,而不是一个字符串setTimeout.
var url = "http://localhost:8888/uploads/<?= $name ?>/output.txt";
setTimeout(function ()
{
top.location.href = url;
}, 1000);
Run Code Online (Sandbox Code Playgroud)
我假设$namePHP正确填写.