最近、私は論文をやっていて、とても熟練していました。私は再びウェブを設計し、問題に遭遇しました。過去には、Webページを設計したとき、私はIEで走りましたが、Chromeは言うまでもなくFirefoxを考えたことはありませんでしたが、今では違います。少なくとも、Firefoxと互換性がないWebページは非常にugいて偽造品だと思うので、このコンセプトから、私はページを設計するときにこの互換性に注意を払い始めました。今回は互換性の問題に遭遇しました。下の図に示すように、HTML、<iframe>にはフローティングフレームワークがあり、ページに埋め込むことができます。
HTMLページは2つのピースに分割され、左側にナビゲーションバーがあり、右側にコンテンツが表示されます。コードは次のとおりです。
左の列のコードは次のとおりです。
<iframe frameborder = 0 id = frmtitleleft name = frameleft src = left.html style = height:100%;幅:180px;>
left.htmlに接続します
右の列は似ています。私が作成したページの場合、プレビュー効果は次のとおりです。
より実用的な効果を達成するために、今、どのような効果を達成すべきですか?任意のリンクをクリックすると、右の列に表示できます。 JSを通じて実装する必要があることは明らかです。元の互換性のない方法についてはあまり言いません。次の実装手順を覚えておいてください。
1.最初に右の列にiframeオブジェクトを取得します
var frames = document.getElementByid(frameid); // frameidは右列のiframeのID名です
2。SRC値をリセットします
frames.src = pageurl; // pageurlは表示される宛先ページです
これにより、ページジャンプが可能になります
しかし、別のポイントがあります、あなたが関数を呼び出したいなら、それはそれほど単純ではありません
たとえば、右の列に関数右()があります。左列のリンクの右()関数を呼び出したい。それを実装する方法
1.まず、左フレームはコンテナページindex.htmlに埋め込まれているため、最初にインデックスレベルに戻って右面オブジェクトを取得する必要があります
var frames = window.parent.window.document.getelementbyid(frameid);
2。そのページで関数を実行できるようにするには、ウィンドウオブジェクトを取得する必要があります。これが重要なオブジェクト、ContentWindowです。このオブジェクトを取得すると、そのような機能を実行できます。
frames.contentwindow.right();
上記のコードは、IE6、Firefox3、およびChrome 2.0と互換性があります。それらはすべて、テストに成功しました。 IE7は試していませんが、問題はないはずです。