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

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

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

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

Q&A

解決済

5回答

2416閲覧

.click()で開いたページの要素にセットしたい。

IDLOCK

総合スコア20

JavaScript

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

0グッド

1クリップ

投稿2016/01/06 07:42

編集2016/01/06 07:43

javaScript

1document.getElementById("tab_open").click();

上記コードでボタンをクリックし、新しくページを開いて、下記のように新しいページの要素にセットしたいのですが、可能でしょうか。

javaScript

1document.getElementById("name").value = "teratail";

無理そうな感じもするのですが、よろしくお願い致します。

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

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

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

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

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

guest

回答5

0

自己解決

遷移先のページを変更することなくページを操作したかったのですが、難しそうだと判明したので今回のは諦めます。
ありがとうございました。

投稿2016/01/07 06:15

IDLOCK

総合スコア20

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

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

0

a.html から b.php を開くとして、a.html から b.phpwindow を参照する方法がないのなら、b.html 側で処理をするように仕組みを作るしかないですね。
(b.phpwindow を参照する方法があるか否かは、b.php を開く仕組みが示されていないのでわかりません)

  • b.php で受け取ったパラメータを元にPHPで値をセットする
  • Cookie で値を共有し、b.php のPHPもしくはJavaScriptで値をセットする
  • Web Strage で値を共有し、b.php の JavaScript で値をセットする

Re: IDLOCK さん

投稿2016/01/06 10:27

think49

総合スコア18162

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

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

IDLOCK

2016/01/07 06:14

think49さん 今回も御回答有難う御座います。 前回(https://teratail.com/questions/23173)の続きになるのですが、開いたタブのボタンをクリックして、更にタブを開いてそのタブを操作したかったのですが、流石にできなさそうですね。(b.html,c.htmlを一切変更せずに。) ありがとうございました。
guest

0

画面内でコンテンツ表示用にタブスタイルの画面構成である、ってことですかね。
ならば、iframe を使えば目的を達成出来るかと。画面の拡大縮小も絡む話だと、ちょっとややこしくなりますが、iframe と onreadystatechange で同一オリジンの別の画面がロード完了したタイミングで、特定要素に対して初期値を格納することはできます。

投稿2016/01/06 08:24

ipadcaron

総合スコア1693

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

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

ipadcaron

2016/01/06 08:27

edo さんの返事を見て書き込みましたが、どうも、sugiyama さんの返事を見ると?な感じです。
IDLOCK

2016/01/07 06:14

ipadcaronさん 御回答有難う御座います。 遷移した先のページに手を加える事なく画面を操作(Seleniumみたいに)したかったのですが、流石に出来なそうなので今回は諦めます。 有難う御座いました。
guest

0

実現されたいことをちゃんと理解していないかもしれませんが、クリックのタイミングで新しいページを次々に追加していくイメージと考えていいですか?だとするとJavaScriptでHTMLをダイナミックに書き換えるの記事が参考になると思います。

ダミーというか、空の(必要最小限の表示要素のみ記載した)htmlファイルに動的追加用のタグを書いておいて、その内部にHTML要素を追加していくことで、ページが切り替わったように見せることはできます。
もちろん、それまで表示していたページもArray等に保管しておいて、必要に応じて切り替えられるようにしておけばお望みの処理になるのではないでしょうか。

投稿2016/01/06 07:54

KoichiSugiyama

総合スコア3041

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

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

IDLOCK

2016/01/06 08:12

KoichiSugiyamaさん ご回答有難う御座います。 流れとしましてはjsが書いてあるhtmlを読み込んで、window.openで指定のURLを開きます。 更にそのURLで開いたページのボタンをクリックする事で、別のページがオープンして、その中にあるinputboxにセットしたいという感じです。 よろしくお願い致します。
guest

0

開く対象のページは同じオリジンのページですか?
それであれば、以下のようにすることで対応できると思います。

var openedWindow = open('http://...'); openedWindow.document.getElementById('hoge').value = '';

open関数の戻り値は開いたウィンドウのwindowオブジェクトなので、その下へのアクセスは通常の方法と違いはありません。

投稿2016/01/06 07:51

edo_m18

総合スコア2283

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

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

IDLOCK

2016/01/06 08:08 編集

edo_m18さん ご回答有難う御座います。 今回の場合、同一オリジンなのですがwindow.openを使わずにボタンクリックでページを遷移しないといけません。 この場合はやはり、難しいでしょうか。 よろしくお願い致します。
edo_m18

2016/01/06 09:14

ちょっと状況が把握しきれていませんが、クリックしたときの処理として上記の`open`関数を読んであげればいいような気がしますが、それができない状態、ということでしょうか?
IDLOCK

2016/01/07 06:14

edo_m18さん openで開くのではなくボタンをクリックして開く必要があるので、悩んでいたのですがどうやら難しいみたいなので、今回は諦めます。 有難う御座いました。
edo_m18

2016/01/07 06:15

えっと、ボタンをクリックすることと `open` を使うことはまったく関係のない話なので、なにをどうしたいのかちょっと分かりません・・。 クリックイベントを拾って、その中で `open` を実行する方法は使えない、ということですか?
IDLOCK

2016/01/07 06:32

edo_m18さん 既にできているページ(A)に新たに別のページ(B)を開くボタンがあるのですが、コードは実行するページ(C)に書かれていてCからwindow.openでAを開いて更にその中にあるボタンを押下してBのページを開くところまでは出来たのですが、その中の要素が取れないかと思い質問しました。 また、既にあるAとBのページには手を加えずに行いたく、またボタンをクリックすると新たにページが開くのですが、クリックすると別のJSが走り、それを走らせる必要がありwindow.openでは出来ませんでした。 非常にわかりにくくて申し訳ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問