質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

3445閲覧

window.openした子ウィンドウの中にある要素をダブルクリックしたい。

IDLOCK

総合スコア20

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2015/12/22 06:02

lang

1var child; 2child = window.open("http://www.yahoo.co.jp/"); 3child.$('#srchbtn').trigger("dbclick");

親ウィンドウで上記コードを実行し、子ウインドウにある要素をダブルクリック或いはクリックしたいのですが、うまく出来ません。
今回の様に子ウインドウは変更など出来ない状態です。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

trigger() はデフォルトアクションを伴いません。
デフォルトアクションも発生させたいなら click() を使用してみて下さい。

JavaScript

1child.document.getElementById('srchbtn').click();

よくみたら、クロスドメインしようとしているのですね。
yahoo.co.jp のような任意の外部サイトのDOMノードを参照する事は出来ません。
上記コードは CORS の制約内で使用して下さい。

Re: IDLOCK さん

投稿2015/12/22 06:36

編集2015/12/22 06:39
think49

総合スコア18162

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

IDLOCK

2015/12/22 06:49

think49さん 回答有り難う御座います。 実際にはhttp://localhost/aaaaa/からhttp://localhost/bbbbb/ccccc/のページをオープンさせようとしています。 この場合も上記制限に引っかかるということでしょうか。
think49

2015/12/22 07:27

同ドメイン内ならば CORS の制約に引っかかりません。詳しくは MDN のリンクを確認して下さい。
IDLOCK

2015/12/22 08:08 編集

think49さん 回答有り難う御座います。 ご指摘通り、同一ドメイン上では取得出来ました。 ただ、ロードが終わる前に下記コードで取得しようとすると、エラーになるのでsetTimeoutを行って対応できました。 var child; child = window.open("http://localhost/bbbbb/ccccc/"); var b = function(){ child.document.getElementById('btn_a').click(); child.document.getElementById("btn_b").click(); } setTimeout(b, 400); ありがとうございました。
think49

2015/12/22 08:55

読み込み完了時なら DOMContentLoaded のタイミングで実行してみてください。 child.document.addEventListener('DOMContentLoaded', function (event) { event.target.getElementById('srchbtn').click(); }, false)
IDLOCK

2016/01/04 10:16

think49さん 遅くなってすみません。 教えて下さった内容で希望の動作が出来ました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問