首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript window.open调用两次

Javascript window.open调用两次
EN

Stack Overflow用户
提问于 2010-06-28 02:27:04
回答 3查看 2.2K关注 0票数 0

我在php条件if/else语句中使用了这段代码来打开一个新窗口。

代码语言:javascript
复制
echo("<script type=\"text/javascript\">
<!--
window.open(\"http://www.example.com/index.php?$var\");
//-->
</script>
");

它打开了两个窗口而不是一个,但只在我的活动站点上(在专用服务器上),而不是在测试站点上(共享服务器)。

编辑:根据zebediah49的建议,我在新的窗口url后面添加了一个随机的int变量。它会随着每个新的窗口实例改变变量,所以我假设这意味着它会运行条件两次。我可能应该提一下,它使用的是Joomla和第三方社区应用JomSocial。

好的,当我编辑这篇文章时,在同一个窗口打开大约5分钟后,它打开了一个全新的window.open窗口实例。所以很明显,它一落地就会自动刷新一次。我得去打听一下。不过,任何建议都是受欢迎的。

感谢您提供的有关语言和最佳实践的技巧。

EN

回答 3

Stack Overflow用户

发布于 2010-06-28 03:46:46

因为它的性能不同,所以两者之间的代码不同,或者环境中存在不同的东西。

为了非常、非常、非常确定它打开了这个特定的url两次,让它在URL的末尾附加一个随机变量:

代码语言:javascript
复制
$rando = rand();
window.open(\"http://www.example.com/index.php?$var&r=$rando\");

另外,如果你想避免报价问题,我建议使用HEREDOCs:

代码语言:javascript
复制
echo(<<<EOF<script type="text/javascript">
<!--
window.open("http://www.example.com/index.php?$var");
//-->
</script>
EOF
);

或使用变量

代码语言:javascript
复制
$content = <<<EOF<script type="text/javascript">
<!--
window.open("http://www.example.com/index.php?$var");
//-->
</script>
EOF;
echo($content);

我想不出一个很好的理由为什么这一行JS会出现两次,这就是为什么我想看到随机变量,这样除了可以打开两次之外,没有其他可能的方法。(如果它在文件中的其他位置,则不会有&r=...;如果执行两次相同的内容,则&r=...两者之间会有所不同)

票数 1
EN

Stack Overflow用户

发布于 2010-06-28 02:33:23

首先。为什么在你的Javascript中有这些?这些都是XML注释。您需要使用/* ... *///

你的意思是

代码语言:javascript
复制
//<![CDATA[
...code...
//]]>

如果这是对window.open()的唯一调用,那么您的http://www.example.com/index.php可能还会进行另一个window.open()调用

票数 0
EN

Stack Overflow用户

发布于 2010-06-28 04:02:08

会不会是PHP回显被触发了两次?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3128370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档