多个window.open无法在IE中工作

时间:2012-05-31 09:38:18

标签: php html hyperlink href

我有一个ahref,当点击时,会更改3个iFrame的内容。这是代码:

<a href='weekone.php' target='weekone' onclick='window.open("weektwo.php","weektwo"); window.open("weekthree.php","weekthree")'>Link</a>

现在这在Firefox,Safari等中完美运行但在IE中不起作用。有人可以帮我解决这个问题吗?我不能使用Javascript,因为我在PHP框架内工作,并且从数据库调用iFrame链接。

更新

看来问题在于从window.open调用的URL中的空格!当我从数据库中调用信息时(即 - “weektwo.php?Name = Bob and Dave”)我怎么能绕过这个?

3 个答案:

答案 0 :(得分:0)

在评论的背面,尝试添加“return true;”到onclick结束(未经测试)......

<a href='weekone.php' target='weekone' onclick='window.open("weektwo.php","weektwo"); window.open("weekthree.php","weekthree"); return true;'>Link</a>

<强>更新

根据更新的问题,使用PHP函数“htmlentities”尝试“HTML Encoding”查询字符串。

我的原始(预编辑)代码基于以下内容。所以在这种情况下,我为要求您编辑它而道歉,但我确实要求您准确显示发送到浏览器的内容...

<a href='weekone.php?Name=<?=htmlentities($i[Name])?>' target='<?=$i[Name]?> weekone' onclick='window.open("weektwo.php?Name=<?=htmlentities($i[Name])?>","<?=$i[Name]?> weektwo"); window.open("weekthree.php?Name=<?=htmlentities($i[Name])?>","<?=$i[Name]?> weekthree")'>Link</a>

更新2 (由于我是愚蠢的)

它不应该是“HTML编码”它应该是“URL编码”使用“urlencode”......

<a href='weekone.php?Name=<?=urlencode($i[Name])?>' target='<?=$i[Name]?> weekone' onclick='window.open("weektwo.php?Name=<?=urlencode($i[Name])?>","<?=$i[Name]?> weektwo"); window.open("weekthree.php?Name=<?=urlencode($i[Name])?>","<?=$i[Name]?> weekthree")'>Link</a>

答案 1 :(得分:0)

什么版本的IE?

在IE 8上测试过,效果非常好。

<a href='test.htm' target='weekone' onclick='window.open("test.htm","weektwo"); window.open("test.htm","weekthree")'>Link</a>

<iframe name='weekone' id='weekone' width=100 height=100></iframe>

<iframe name='weektwo' id='weektwo' width=100 height=100></iframe>

<iframe name='weekthree' id='weekthree' width=100 height=100></iframe>

答案 2 :(得分:0)

如果您尝试在<iframe>中打开链接,则可能更容易

document.querySelector('iframe[name="weekone"]').src='test.htm';
document.querySelector('iframe[name="weektwo"]').src='test.htm';
document.querySelector('iframe[name="weekthree"]').src='test.htm';

(我使用document.querySelector因为它是最简单的,但当然你可以使用document.getElementById或任何你想要的方式来获取对<iframe>的引用。)