这似乎是一个古老的问题。但我似乎无法找到解决方案。
我有一个页面上有两个iframe。他们正在加载:
<iframe id="leftIframe" src="predict_goalkeepers.php" height="900" width="300" frameBorder="0" hspace="0"></iframe> <iframe id="rightIframe" src="predict_right.php" height="900" width="300" frameBorder="0" hspace="0"></iframe>
然后我想从leftIframe向右发布一些内容并同时刷新leftIframe。这是我通过目标框架和onclick功能完成的。在左边框架上我有这个:
<form action="predict_rightframe.php" method="post" name="form1" id="form1" target="rightIframe"><input type="checkbox" name="goalkeepers" value="1" onclick="this.form.submit(); window.location.reload(true)">
这在Chrome上运行良好且超级优秀。但是在检查Firefox和IE时,框架会在新窗口中打开。
到底有没有?
我相信有一个“黑客”,你可以通过javascript创建一个框架。但我只发现了如何创建一个隐藏框架(see here),但我希望这个框架可见。
有关此问题的任何帮助都非常有用 - 即使它只是调整上述链接的javascript代码来创建可见的iframe。
答案 0 :(得分:0)
我已经修好了!这花费了我几个小时的时间。
但如果有人有同样的问题。这是解决方案..
使用以下详细信息创建名为frame.js的文件:
var filePath = 'predict_rightframe.php';
// Setup the iframe target
var iframe='<iframe id="myIframe" name="myIframe" src ="predict_rightframe.php" width="300" height="450" marginheight="0" marginwidth="0" frameborder="no" scrolling="no"></iframe>';
// Write the iframe to the page
document.write(iframe);
var myIframe = parent.document.getElementById("frame");
// Setup the width and height
myIframe.height = 450;
myIframe.width = 300;
myIframe.src = filePath;
// set the style of the iframe
myIframe.style.border = "0px solid #999";
myIframe.style.padding = "0px";
然后你想要iframe出现在哪里:
<script language="JavaScript" src="includes/frame.js"></script>
我不太确定为什么这样有效(坦率地说,我不关心它是否有效!)。这与IE有关,不认为iframe是一个对象。 Javascript可以让IE认为它是一个对象......无论如何它现在都有效。