4

これは古くからの問題のようです。しかし、私はそれに対する解決策を見つけることができないようです。

2つの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>

なぜこれが機能するのかよくわかりません(率直に言って、私はそれが機能するかどうかは気にしません!)。これは、iframeがオブジェクトであるとは考えていないIEと関係があります。Javascriptは、IEにそれがオブジェクトであると思わせることができます...とにかく今は機能します。

于 2012-09-06T12:38:59.653 に答える