• ベストアンサー

開いた子ウィンドウにあるボタンを親ウィンドウでクリックする

親ウィンドウ(pre_one)からwindow.open(sub_one)でリンクを開き、sub_oneにあるボタン(name="btn1")をリンク元のpre_oneからクリックする方法を教えてください。 また、sub_oneでbtn1をクリックしたあと、pre_oneから別ウィンドウ(sub_other)を開かせることは可能でしょうか。 可能であればsub_oneを開くところからsub_otherを開くところまで、1クリックで実現させたいと考えています。 よろしくお願いいたします。

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

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.5

以下で、出来るはずですが... <script type="text/javascript"> function fuga(){ sub=window.open('sub.htm'); sub.window.onload = function(){ var tags=sub.document.getElementsByTagName('input'); for(var i=0;i<tags.length;i++){ if(tags[i].name=="btn1"){ tags[i].click(); break; } } } } </script> </head> <body> <input type="button" value="sub" onclick="fuga()"> </body> </html>

lotus_zd
質問者

お礼

うまくいきました。 詳細にありがとうございました。

その他の回答 (4)

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.4

No.3です 確か<input type="submit">のボタンは、ブラウザーによって javascriptからのクリックが禁止されていたような.... うろ覚えです。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.3

sub_oneがASPで生成されるファイルだとしたら、 別ウィンドウにロードが完了するのにタイムラグがあるはずです。 したがって、ロードと同時にsub_oneの要素をクリックさせたなら、 ロードが完了してなくて失敗する事がありえる。 sub_oneのロード完了のイベントでクリック動作させる必要があるのでは?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

じゃ、ちょっと処理をいれてこんな感じ <script> function hoge(){ try{ var tags=sub.document.getElementsByTagName('input'); for(var i=0;i<tags.length;i++){ if(tags[i].name=="btn1"){ tags[i].click(); break; } } }catch(e){ alert('error!'); } } </script> <input type="button" value="sub" onclick="sub=window.open('sub.htm')"> <input type="button" value="click" onclick="hoge()">

lotus_zd
質問者

お礼

詳細にありがとうございます。 ご教授いただいた方法は、ボタンが2つ表示されるのでよかったでしょうか? 試してみたのですが、"sub"でSub_oneのウィンドウが開き、 "click"をクリックすると「error!」のアラートが表示されてしまいます(涙) 何が問題なのでしょうか? Sub_one上の自動押下したいボタンは、以下のものです。 <input type="submit" value="OK" name="btn1"> また、1クリックで実現したいので、下記のように編集してみました。 <a onclick="window.open('Sub_otherのULR');hoge()" href="Sub_oneのURL">TEST</a> これでもやはり「error!」のアラートが表示されてしまい(涙)、 そのアラートをOKすると、Sub_oneが開きます。 たびたび申し訳ありませんが、よろしくお願いいたします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

「name="btn1"」は、idに変えられませんか? であれば、こんな感じ <input type="button" value="sub" onclick="sub=window.open('sub.htm')"> <input type="button" value="click" onclick="try{sub.document.getElementById('btn1').click();}catch(e){alert('error!');}"> 複数の処理をやるなら、ユーザー関数化したほうがらくかも

lotus_zd
質問者

お礼

早々にありがとうございます! sub_oneは、既成ASPのファイルのため、idに変更できません。 また、sub_oneは固定ですが、sub_otherは複数になる予定です。 Javascript初心者なので実現可能な範囲がつかみきれてないのですが、 感覚としては、ユーザ関数化したほうが楽だと想像できます。 しかし、なかなかそこまでたどり着けません。。。 リファレンスで十分ですので方向性をご指示いただければとても助かります。

関連するQ&A

  • ボタンクリックで新しいウィンドゥを開けたいです。

    どなたかお知恵をお貸しください。 フォームボタンにてボタンクリックで新しいウィンドゥにて表示させたいのですが やり方が分かりません。 (1)画像をクリック時に買い物カゴに自動的に移動し該当商品がすでに選択されるようにしたい。 (2)その画像をクリック時に買い物カゴのページに移動するが、その際新しいウインドゥにて表したい。 ソースは下記のとおりです。 <form action="http://www.************.php"method="get" > <input type="hidden" name="mode" value="cart" /> <input type="hidden" name="product_id" value="7" /> <input type="hidden" name="product_class_id" value="7" /> <input type="hidden" name="quantity" value="1" /> <INPUT type="image" SRC="../img/**********.png" alt="*********のご購入はこちらから" border="0" /> </form> 上記の際、windowをopenする際どのようなタグにすればよろしいでしょうか。 お手数おかけしますがよろしくお願いします。

  • 画面のボタンをクリックしたとき・・・・・

    画面のボタンをクリックしたとき、別窓で、指定した画面が開くようにしたのですが、その中身をスクロールで見せられるようにするには、どんなロジックをPGMに入れればいいのでしょうか? 今は、下記のロジックが入っています。 <!-- function OpenWindow() { subWin = window.open("sub01.html","sub01","width=570,height=370"); } // --> </SCRIPT> よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • ボタンをクリックするとエラーになる

    Excelマクロ初心者です。 Excelマクロにて下記のコードを実行してみました。 ツールバーは出たのですがツールバーのボタンをクリックすると、 エラーメッセージが出てしまいます。 例 更新ボタンをクリック マクロ 'xxx.xls!BTN_TOUROKU'が見つかりません と出てしまいます。 OnActionが旨く動きません。どうして動かないのでしょうか? --------------------------------------------------------------- Option Explicit Private Const g_cnsTITLE = "更新ツールバー" ' 立ち上げ時自動実行処理 Sub Workbook_Open() Dim xlAPP As Application Dim objBar As CommandBar Dim objCont As CommandBarControl Dim objBtn As CommandBarButton Dim vntCaption As Variant Dim vntTipText As Variant Dim vntOnAction As Variant Dim IX As Integer Dim blnTRUE As Boolean Set xlAPP = Application ' ボタンのタイトルを設定 vntCaption = Array("登録(&A)", "更新(&U)", "削除(&X)") ' (1) ' ボタンにマウスを当てた時に表示されるテキストを設定 vntTipText = Array("登録を行ないます", "更新を行ないます", "削除を行ないます") ' ボタンの動作マクロを指定 vntOnAction = Array("BTN_TOUROKU", "BTN_KOUSHIN", "BTN_SAKUJO") ' ツールバーを追加する ' (2) Set objBar = xlAPP.CommandBars.Add(Name:=g_cnsTITLE, Position:=msoBarTop) ' 1番目はボタンの境界をなしにする blnTRUE = False ' ボタンを3つ追加する For IX = 0 To 2 ' まずボタンを指定してコントロールを追加 Set objCont = objBar.Controls.Add(Type:=msoControlButton) ' (3) ' ボタンの境界を設定 objCont.BeginGroup = blnTRUE ' (4) ' CommandBarButtonオブジェクトを取得 Set objBtn = objCont ' (5) objBtn.Style = msoButtonCaption ' ボタン名を表示 ' (6) objBtn.Caption = vntCaption(IX) ' 表示名を設定 objBtn.TooltipText = vntTipText(IX) ' マウスを当てた時のツールチップテキスト 'objBtn.OnAction = vntOnAction(IX) ' 動作マクロを設定 objBtn.OnAction = vntOnAction(IX) ' 2番目以降はボタンの境界を設定 blnTRUE = True Next IX ' ツールバーを表示する objBar.Visible = True ' ツールバーを表示 ' ツールバーを非表示にできなくする objBar.Protection = msoBarNoChangeVisible ' ツールバーをマウスで引き出したり右クリックした時に「閉じる」の操作ができないようにする ActiveWindow.ScrollRow = 1 ' オブジェクトを廃棄 Set objBtn = Nothing Set objCont = Nothing Set objBar = Nothing End Sub ' 閉じる時の自動実行処理 Sub Workbook_BeforeClose(Cancel As Boolean) Dim xlAPP As Application Dim objBar As CommandBar Set xlAPP = Application ' ツールバーオブジェクトを取得する Set objBar = xlAPP.CommandBars(g_cnsTITLE) ' ツールバーを削除する objBar.Delete ' オブジェクトを廃棄 Set objBar = Nothing End Sub ' 「登録」ボタンがクリックされた時の処理 Sub BTN_TOUROKU() MsgBox "「登録」が押されました" End Sub ' 「更新」ボタンがクリックされた時の処理 Sub BTN_KOUSHIN() MsgBox "「更新」が押されました" End Sub ' 「削除」ボタンがクリックされた時の処理 Sub BTN_SAKUJO() MsgBox "「削除」が押されました" End Sub ---------------------------------------------------------------

  • 子ウィンドウから親ウィンドウのテキストフィールドにデータを表示する

    子ウィンドウのリンクをクリックするとそのリンクの内容が親ウィンドウのテキストフィールドの中に表示されるというのを作りたいのですが、 親ウィンドウ <html> <head> <title>サブウィンドウから親ウィンドウのテキストフィールドにデータを表示する</title> <script language="JavaScript" type="text/JavaScript"> <!-- function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } //--> </script> </head> <body> <a href="javascript:;" onClick="MM_openBrWindow('subwindow.html','','width=160,height=160')">open</a> <form name="myFORM"> <input type="text" name="tBox"> </form> <form name="myFORM2"> <input type="text" name="tBox2"> </form> </body> </html> 子ウィンドウ <html> <head> <title>サブウィンドウから親ウィンドウのテキストフィールドにデータを表示する</title> <script Language="JavaScript"> <!-- function setData() { window.opener.document.myFORM.tBox.value="灯油ストーブ"; } function setData2() { window.opener.document.myFORM2.tBox2.value="シャワー"; } // --> </script> </head> <body> <a href="#" onClick="setData()">灯油ストーブ</a> <a href="#" onClick="setData2()">シャワー</a> </body> </html> これではリンク数とテキストフィールド数が同じじゃないといけないですよね。 作りたいのはテキストフィールドは15個あって、リンクの方は70個ぐらいあります。リンクをクリックするとテキストフィールドの中へ順々に表示させたいのですが、どうしたらよいのでしょうか? どうかアドバイスをお願いいたします。

  • ウィンドウサイズ2

    (先ほど質問したのですが、わかりにくいのでもう一度...) <INPUT TYPE="button" VALUE="open window" onClick='myWin = window.open("sample.htm","Sample","width=200,height=200")'> で、200×200の新しいウィンドウが開けますよね。 これを、ボタンではなく普通のリンクに、また、新しいウィンドウを開くのではなく元のウィンドウのサイズを変えることはできますか?

  • 子ウインドウ内のswfから親ウインドウへリンク

    親ウインドウからwindow.openを使って子ウインドウを開いています。 子ウインドウ内にはボタンを含むswfがあり、 そのボタンをクリックすると親ウインドウ内にA.htmlを表示させたいと考えているのですが、 色々調べてみてもその方法を見つけることが出来ません・・。 swfからではなく普通のテキストや画像からなら <a href="" onclick="opener.location.href='A.html';return false">○○○</a> で可能なことは分かるのですが、getURLに上記を入れてもダメでした。 可能な方法はありませんでしょうか? よろしくお願いします。 (Flash8を使用しています)

    • ベストアンサー
    • Flash
  • 子ウィンドウの操作

    処理概要:親ウィンドウからボタンクリック時にjavascriptのみで      子ウィンドウを作成し、遷移させた後、子ウィンドウの      フォームをサブミットする。 -------以下ソース-------- var url = "/index.html"; hWin=window.open("",""); window.hWin.location.href=url; setTimeout(a,10000); function a(){ window.hWin.document.form.submit(); // window.hWin.document.form.name.value = "住友"; // window.hWin.document.form.button1.click(); }  * index.html にはformというフォームがあり、nameという   テキストボックスとbutton1 というボタンをフォーム内に   持っているとします。 以上のような簡単なものですが、7行目のsubmitでこけます。 window.hWin.document.formがないようでヌルポになります。 親から子ウィンドウのサブミットをjavascriptだけで制御 できないでしょうか。 また、できればコメントアウトしているところ、 DOM要素を指定して値をテキストボックスに入れたり フォームをボタンによりクリックしてサブミットもしたいです。 ちなみに、setTimeout を利用しているのは、遷移が終わり、子ウィンドウの要素が確実に作成されている状態にするためです。 また、遷移先にSSLを設定している部分と設定していない部分があり、javascriptの途中で"ここに遷移していいですか?"みたいなダイアログが表示されます。"混雑しているページの処理"をインターネットオプションから"有効"にする(ダイアログを表示するではなく)と表示されないのですが、奨励されないので 他にいい方法はないでしょうか。

  • ボタンをクリックで新しいウインドウを開くには?

    ボタンをクリックで新しいウインドウを開くには? Googleのボタン「Google」、「Homepage」を押すと、「新しいウインドウ」を開くにはどこを書き加えれば、よいのでしょうか?いろいろ試しましたが、うまくいきません。よろしくおねがいします。。 <FORM method="GET" action="http://www.google.co.jp/search"> <INPUT maxlength="300" size="21" name="q"> <INPUT type="submit" value="Google" name="btnG" style="font-weight: bold" > <INPUT type="hidden" name="lr1" valuelang-ja checked value="1"> <INPUT type="submit" value="Homepage" name="btnI" style="font-weight: bold" > </FORM>

    • ベストアンサー
    • HTML
  • ワンクリックで2つ以上の別のウインドウを開く

    こんにちは。 個人のブログで、ワンクリックで、2つ以上のウインドウを開くようにしたいと思い、ネットで探していると、以下のように書かれていましたが、上手くいきません。 どうすればよいのか、お分かりの方がいましたら、お願いいたします。 <A HREF=" onClick="{window.open('a href="http://tv.yahoo.co.jp/');window.open('http://www.yahoo.co.jp/');return false;}">続きを読む</A> http://questionbox.jp.msn.com/qa773195.html

  • 親ウィンドウのボタンからサブウィンドウを閉じたいのですが・・・。

    いつもお世話になっています。 JavaScript初心者です。 window.closeについて質問させて下さい。 メインウィンドウにある「next」という次のページに移るボタンをクリックすると、開かれているサブウィンドウを閉じる処理を実行したいのですが、window.closeを使えばいいということしか分からず、何をどこに書けば良いのか困っています。(サブウィンドウにも「閉じる」ボタンを作成していますが、親ウィンドウからも操作が出来るようにしたいと思っています。) どうか教えていただけませんでしょうか。 ソースは次の通りです。 ----------------------------- //サブウィンドウの表示 <script language="JavaScript"> function sub(msg){ var page =window.open("", "HintPage","screenX=400,screenY=600,left=400,top=600,width=400,height=250,scrollbars=yes,resizable=yes"); page.document.open(); page.document.writeln("<html>"); page.document.writeln("<head><title>{test}</title></head>"); page.document.writeln("<body leftmargin=\"15\" rightmargin=\"15\" topmargin=\"20\">"); page.document.writeln("<h3>[ {test} ]</h3><hr><br>" + msg + "<br><br><hr><br>"); page.document.writeln("<div align=center>"); page.document.writeln("<input type=button value=close onclick=\"javascript:window.close()\"></div>"); page.document.writeln("</body>"); page.document.writeln("</html>\n"); page.document.close(); page.focus(); } </script> </HEAD> //「next」ボタンの表示 <body> <table cellpadding=3 cellspacing=5 align="right"> <tr> <td bgcolor="#9999ff" align="right"><input type="submit" name="next" value="{nextBtn}" style="width: 140px; height: 20.5px;" onClick="setPname('{next}')" {disabled2}></td></tr> </table> </body> ---------------------------- どうぞよろしくお願い致します。 説明不足の点がありましたら補足させて頂きます。