我有一个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”)我怎么能绕过这个?
答案 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>
的引用。)