2011-01-19 4 views
1

私は、それぞれ異なるHTMLを指す2つのフレームセットを持つhtmlページを持っています。他のフレームセットから1つのフレームセットの要素にアクセス

ここでは、最初のフレームセット(html)にテキストボックスがあり、2番目のフレームセット(html)にボタンがあります。

ボタンをクリックしたときにテキストボックスを非表示にする方法を教えてもらえますか?

+0

[javascript:異なるフレーム内のオブジェクトにアクセスできますか?](http://stackoverflow.com/questions/987423/javascript-get-access-to-objects-in-different-frame) –

答えて

1

テストし、それは(あなたのボタンのonclickのハンドラ内で)このようにする必要がありません。

parent.frames[1].document.getElementByid('mytextfield').style.display = 'hidden'; 
//   ^^^ here you could also access the frame by its name using ['mysecondframe'] 
0

あなたは(問題のフレームのdocument対象にgetElementById機能を経由して要素にアクセスすることができますターゲットフレームのdocumentを使用することに注意してください。   —という名前でフレームセットからフレームを取得できます。フレーム名は、フレームセットのwindowオブジェクトのプロパティになります。

例(live copy; button frame code):

var textbox = parent.targetFrame.document.getElementById('theTextBox'); 
textbox.value = "You clicked at " + new Date(); 

... targetFrameは、ターゲットフレームの名前です。 frames[n]も使用できます。nはフレームセット内のフレームのインデックスですが、より堅牢な名前が見つかりました。

上記の例は、Firefox、Chrome、Opera for LinuxおよびIE6   —で動作するため、幅広いブラウザで動作するはずです。

1

2つのフレームが同じドメインにある場合にのみ、上記のすべてを行うことができます。ブラウザsecurity policiesのために、フレームが同じドメインにあっても、同じプロトコル上であっても、相互にやりとりすることはできません(javascriptは問題ありません)。

関連する問題