FirefoxでselectedIndexが使えない

このQ&Aのポイント
  • FirefoxでselectedIndex属性に値を入れることができません。IEですと問題なく動きます。
  • 子画面から親画面のプルダウンメニューの値を変更させる方法として、親画面からポップアップ画面(子画面)を表示し、子画面のボタンをクリックすると親画面のプルダウンメニューの値が変更されます。
  • Firefoxのバージョン2.0.0.1では、window.opener.document.getElementById( "a" ).selectedIndex = 1;というコードを使用してもselectedIndex属性に値を入れることができません。
回答を見る
  • ベストアンサー

FirefoxでselectedIndexが使えない

Firefoxで、selectedIndex属性に値を入れることができません。 IEですと問題なく動きます。 恐れ入りますが、どなたか解決策をご教授くださいますよう、お願い致します。 【環境】  IE: 6.0 SP2  Firefox: 2.0.0.1 【やりたいこと】  子画面から親画面のプルダウンメニューの値を変更させる。 【方法】  1.親画面からポップアップ画面(子画面)を表示  2.子画面のボタンをクリック  3.親画面のプルダウンメニューの値を変更 【ロジック】  //親画面   var url = "xxx";   var subwin = window.open( url, "", "width=500,height=500,scrollbars=yes", "_blank" );   subwin.focus();  //子画面   window.opener.document.getElementById( "a" ).selectedIndex = 1;

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

まったく問題なく作動しますが・・・ hoge.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>てすと</title> <script type="text/javascript"> <!-- application/ecmascript--> function hoge(){   var url = "huga.html";   var subwin = window.open( url, "", "width=500,height=500,scrollbars=yes", "_blank" );   subwin.focus(); } </script> </head> <body> <select id="a"> <option>あ</option> <option>い</option> <option>う</option> <option>え</option> </select> <button onclick="hoge();">実行</button> </body> </html> huga.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>てすと</title> <script type="text/javascript"> <!-- application/ecmascript--> function huga(){ window.opener.document.getElementById("a").selectedIndex = 1; } </script> </head> <body> <button onclick="huga();">実行</button> </body> </html>

kazu4444
質問者

お礼

プルダウンメニューの「name」には名前がつけてあったのですが、「id」に名前をつけていなかったようでした。 (※<select id="a">ではなく、<select name="a">となっていた) 「id」に名前をつけることでFirefoxでも正常に動くようになりました。 初歩的なミスで申し訳ありませんでした。 またお力添えを頂き、まことにありがとうございました。

その他の回答 (1)

回答No.2

#1です。strict.dtdを宣言しながら、select要素等がbody直下にあって W3C Markup Validatorに怒られて来たので適宜対処してください #Form系のソースあまり書いたことないんだよなあ

関連するQ&A

  • IE7でのwindow.openerがnullになる

    showModalDialogで、子ウィンドウを開き、子ウィンドウからwindow.openerの関数を呼ぼうとしています。Firefoxでは、問題なく呼べるのですが、IE7ですとwindow.openerそのものがnullになってしまいます。 回避策はあるのでしょうか? IE7のバグですかね? 親 window.showModalDialog("hoge.html", this, "スタイル"); 子 var a = window.opener.hoge(); といった形で使用しています。ちなみにこの前にalert(window.opener)を入れたら、見事にnullって表示されました。

  • Firefoxでwindow.openerが動作しない

    あるHTMLから、window.openであらたなウィンドウを開いて、開いたウィンドウにあるリンクをクリックすると、そのリンクの値が元のウィンドウのテキストフォームに入力されるようにしたいのです。 IE6では正常に動いてくれますが、Firefox3で動きません。 新たなウィンドウでは以下の記述をしています。 function junp(value){ window.opener.formtest["test"].value = value; window.close(); } window.openerの行をコメントアウトすると正常にウィンドウを閉じます。 そもそもFirefoxでwindow.openerは使えないのでしょうか??

  • サブウィンドウから親ウィンドウのファンクションを起動

    おせわになっております。 サブウィンドウから親ウィンドウのファンクションを起動する方法について困っています。 親ウィンドウから var subWin = window.open("a.html", "sub") でオープンしたサブウィンドウを閉じる場合に サブウィンドウから親ウィンドウの function sub_close() { subWin.close(); } を呼び出して閉じる処理をしています。 (サブウィンドウでwindow.opener.sub_close()) #これは正常に処理されます。 ここで問題なのですが、サブウィンドウがフレームの場合に、フレームセットされたHTMLから window.opener.sub_close() というような方法では親画面の操作ができないのでしょうか?(できませんでした。) 初歩的な質問で申し訳ないのですが、何かよい方法があれば教えてください。 宜しくお願いします。

  • 子画面から親画面をクローズしたい

    子画面から親画面をクローズすると確認メッセージが表示されます。 非表示の方法はありますか? 現在の処理内容:  親画面:   ボタン押下時 onclick="window.opener='main';window.open('URL');return false;"  子画面:   onload時 window.opener.close(); 確認ブラウザ:IE10、Chrome43  ※IE10では表示されるが、Chrome43では表示されない。

  • 子ウィンドウを手前に表示する

    子ウィンドウがまだ開かれていない場合に、子ウィンドウを開く。子ウィンドウがすでにある場合に子ウィンドウが手前に表示されるボタンを作りたいです。 今、作成中のPROGは以下です。 var subwin; function display(url){  if(subwin && !subwin.closed){   subwin.focus();  }else{   subwin = window.open(url, "", "width=768,  height=512");   subwin.moveTo(125,120);  } } このPROGでは、一度目のopen()は可能なのですが、テストでウィンドウを閉じて、もういちどクリックしてみると二度目からopen()されずに、エラーが出てしまいます。 どなたか、解決法を教えてください。 IE6、sp2です。

  • 子画面を自動で閉じた後、親画面を再描画するJavaScriptが・・・・

    IEだと動くんですけど、Netscapeだと動かないんです。なんかsecurityErrorが出まして・・・。子画面を閉じるまでは動いてるんですが、親の再描画の部分でエラーが出てるようです。どこが原因かお分かりになる方いらっしゃいますか?よろしくお願いします。 <%//処理を何秒後に行うか 時間をset%> function setTimer(){ timer1=setTimeout("clo()",3000); timer2=setTimeout("location()",3000); } <%//windowをclose%> function clo(){ window.close(); } <%//親画面を再描画する%> function location(){ var url='<html:rewrite page="/hogehoge/hoge.do" />'; window.opener.location.href = url+'?member_id='+変数; }

  • サブウィンドウの画面制御について

    過去スレを確認しましたが、同じようない内容のモノがなかったため質問させて頂きます。 サブウィンドウ画面の制御についての質問なのですが、 親→子→孫といったように3画面同時に表示する場合があります。 この時、親を閉じると子と孫も、子を閉じると孫も同時に閉じたいと思っています。 しかし親から子、子から孫といったように一階層だと閉じることができますが、 親から孫と二階層になると閉じる事ができません。 どなたか解決方法をご存知の方がおられましたら、 ご教授頂けますでしょうか。 よろしくお願いします。 実装内容は以下のようになっています。 (必要部分以外は省略しています) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ----------------子画面用JavaScript-------------------- ◆子を開く function openWin1(){ subWin1 = window.open(url,"subWin1",""); } ◆子を閉じる function closeWin1(){ if(typeof(subWin1) != 'undefined') { // 子ウィンドウを閉じる subWin1.close(); } // 孫ウィンドウを閉じる closeWin2(); } ----------------------------------------------------- ---------------孫画面用JavaScript-------------------- ◆孫を開く function openWin2(){ subWin2 = window.open(url,"subWin2",""); } ◆孫を閉じる function closeWin2(){ if(typeof(subWin2) != 'undefined') { // 孫ウィンドウを閉じる subWin2.close(); } } ----------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  • Firefoxでvalueの値を変更できない

    フォームの値を通常 <input name="Reload" type="hidden" value="1" id="Reload" /> で飛ばしていますが、サブウィンドウで操作後識別のために window.opener.document.getElementById('Reload').value=2 と値を変更するようにしていました。 しかし、IE6では動くのですがFirefoxでは値が変更できずに悩んでいます。 良い解決法があればよろしくお願いいたします。

  • 親ウィンドウのフォームの値を変更

    showModalDialogでオープンした子画面から、returnValueで値を返すのとは違う方法で、親ウィンドウのフォームの値を変更したいと思っています。 (その子画面をオープンすると同時に、親ウィンドウのフォーム値を変更したいため) その際に    window.opener.document.formA.hiddenA.value = "aaa" という風に記述しているのですが、「window.opener.documentはオブジェクトではありません」というエラーになってしまいます。window.openで開いた子画面からだと、この方法でできたと思うのですが・・・どうすれば変更できるでしょうか?そもそも、showModalDialogでオープンした画面から親ウィンドウの値を変更すること自体がダメなのでしょうか? よろしくお願いします。

  • 画面間の送信について・・・。

    2つのフレームからなる親画面から子画面を開き、 子画面のリストボックス(またはプルダウンメニュー)で値を選び、 送信ボタンを押したときに、 親画面のインプットボックスに値を送る方法を教えてください。 また、何かよいサンプルあればURLのほうもお願いします。