4

这似乎是一个古老的问题。但我似乎无法找到解决方案。

我有一个页面,上面有两个 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 功能完成的。在leftIframe我有这个:

<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 创建一个框架。但我发现的唯一建议是如何创建一个隐藏的框架(见这里)但我希望这个框架是可见的。

关于这个问题的任何帮助都将非常有帮助——即使它只是调整上面链接的 javascript 代码来创建一个可见的 iframe。

4

1 回答 1

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 认为它是一个对象……不管怎样,现在它可以工作了。

于 2012-09-06T12:38:59.653 回答