2016-09-20 7 views
0

が存在することを確認する:どのようにフレームセットのフレームが、私は3つのフレームを持つフレームセットを持っている

<frameset rows="124, *, 0"> 
    <frame id="f1" scrolling="No" frameborder="0" src="" name="control"> 
    <frame id="f2" frameborder="0" src="" name="main"> 
    <frame id="f3" noresize frameborder="0" name="go"> 
</frameset> 

私は、ID =「F2」とのフレームが存在するかどうかを確認するつもりですか?

私が試してみました:

<script> 
if(document.getElementById("f2").contentDocument.documentElement.innerHTML !== null) { 
alert('ok'); 
} 
</script> 

でもないが、働いていました。 私は何か行う必要があります知っている:要素が存在しないので、式はfalseになります、のいずれかで!を追加する場合

document.getElementById("f2") 

をしかし

+0

あなたが "存在する" とはどういう意味ですか?要素がdomに存在する場合は?ページの内容が読み込まれている場合 – Dekel

+0

id = "f2"であれば、html注入を防止したいのですか?またはユーザーによって削除されました:) @Dekel –

+0

HTML5からフレームが削除されました。使用しないでください。 –

答えて

3

- しかし、これが動作するためには、あなたがフレームセットにドキュメントのDOCTYPEを設定する必要がありますdocument.getElementById("f2")リターン何か、あれば実際に何をやるべきことだけを確認している。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> 

は、そうでない場合は、ブラウザが認識しませんフレームを返し、何も返しません。

チェックこのフィドル:
https://jsfiddle.net/b8xg9y8u/

+0

あなたは賢い男の子です。ありがとうございました。 –

+1

あなたは歓迎です:)私は助けることができてうれしい! – Dekel

1

のdocument.getElementById(より多くの情報が必要)がnullを返します。初め、または

if (!document.getElementById("f2")) { 
} 

または

if (document.getElementById("f2")) { 
} else { 

} 
場合には、あなたのコードを追加します。まあ
+0

document.getElementById( "f2")は内部フレームセットにアクセスできません。 –

関連する問題