我在php条件if/else语句中使用了这段代码来打开一个新窗口。
echo("<script type=\"text/javascript\">
<!--
window.open(\"http://www.example.com/index.php?$var\");
//-->
</script>
");它打开了两个窗口而不是一个,但只在我的活动站点上(在专用服务器上),而不是在测试站点上(共享服务器)。
编辑:根据zebediah49的建议,我在新的窗口url后面添加了一个随机的int变量。它会随着每个新的窗口实例改变变量,所以我假设这意味着它会运行条件两次。我可能应该提一下,它使用的是Joomla和第三方社区应用JomSocial。
好的,当我编辑这篇文章时,在同一个窗口打开大约5分钟后,它打开了一个全新的window.open窗口实例。所以很明显,它一落地就会自动刷新一次。我得去打听一下。不过,任何建议都是受欢迎的。
感谢您提供的有关语言和最佳实践的技巧。
发布于 2010-06-28 03:46:46
因为它的性能不同,所以两者之间的代码不同,或者环境中存在不同的东西。
为了非常、非常、非常确定它打开了这个特定的url两次,让它在URL的末尾附加一个随机变量:
$rando = rand();
window.open(\"http://www.example.com/index.php?$var&r=$rando\");另外,如果你想避免报价问题,我建议使用HEREDOCs:
echo(<<<EOF<script type="text/javascript">
<!--
window.open("http://www.example.com/index.php?$var");
//-->
</script>
EOF
);或使用变量
$content = <<<EOF<script type="text/javascript">
<!--
window.open("http://www.example.com/index.php?$var");
//-->
</script>
EOF;
echo($content);我想不出一个很好的理由为什么这一行JS会出现两次,这就是为什么我想看到随机变量,这样除了可以打开两次之外,没有其他可能的方法。(如果它在文件中的其他位置,则不会有&r=...;如果执行两次相同的内容,则&r=...两者之间会有所不同)
发布于 2010-06-28 02:33:23
首先。为什么在你的Javascript中有这些?这些都是XML注释。您需要使用/* ... */或//
你的意思是
//<![CDATA[
...code...
//]]>如果这是对window.open()的唯一调用,那么您的http://www.example.com/index.php可能还会进行另一个window.open()调用
发布于 2010-06-28 04:02:08
会不会是PHP回显被触发了两次?
https://stackoverflow.com/questions/3128370
复制相似问题