2012-04-04 1 views
0

JavaScriptは緑色ですが、私の背景にはC++がありますので、 。 iframeが存在するかどうかによって、2つのうちの1つを実行する電子メールリンクがあります。このコードは親ページ(index.html)に存在するため、iframeは子になります(私は推測します)。 まだiframeがない場合、このコードが必要です(gb_page_fs []はiframeを作成するためにいくつかのコードを呼び出します)。iframeが存在するかどうかに応じて、既存のiframeまたは実行コードのいずれかにリンクをオープン

<a href="contact.html" rel="gb_page_fs[]">e-mail</a> 

のiframeが、それは「GB_frame」という名前になり、これは私がリンクのために必要となるコードで存在している場合:

<a href="contact.html" target="GB_frame">e-mail</a> 

私は2つの問題を抱えている:フレームが存在するかどうかを確認しようとすると、第2のケースコードを実行する。親iFrameの名前を識別するためのコードはたくさんありますが、子はありません。私が得た最も近いのはdocument.getElementById( "framename")。nameですが、 "nullのプロパティ 'name'を読み取ることができません。後者については、私は単純な解決策があると思っていますが、どこから探し始めるべきかはわかりません。

答えて

0

あなたはiframeの正しいテストを行っています。 IFRAMEのソースを設定するには

var x = document.getElementById('framename'); 
// if the iframe doesn't exist x will be null and the if statement evaluates to false 
if(x) 
{ 
    doSomething(); 
} 

:あなたはこのような何かをしたい

document.getElementById('framename').src = 'url to page'; 
+0

ジェフ、ありがとう!それは私を一歩近づけます。しかし、フレームが開いているかどうかにかかわらず、私は同じ結果を得ています。 iframeが動的に作成され読み込まれることは重要ですか?私は一時的にこれを「if」ロジックまたは「else」ロジックに従っているかどうかを示す警告出力付きのフォームボタンと呼ばれる関数として実行しています。 function checkframe(){ var x = document.getElementById( 'GB_frame'); (X) なら{( "IF "x.value +)警報;}そう {アラート(" 他");}} – thirdstring

+0

なし@thirdstring IFRAMEを添加する場合、それは問題ではない(ASあなたがそれを探す前にそこにある限り)。あなたのアラートにx.valueがあることに気付きました。 Valueはiframeの有効な属性ではないため、未定義となります。このリンクを見て:[http://jsfiddle.net/vEnjR/3/] (http://jsfiddle.net/vEnjR/3/)。これはiframeを動的に追加し、それが存在することを確認する実際の例です。あなたに質問がある場合はお知らせください。 –

関連する問題