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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

5377閲覧

WindowsのChromeはJavaScriptを使ってモードレスダイアログから元のウィンドウに値をセットできない理由は?

tchofu

総合スコア87

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2015/07/31 07:58

編集2015/07/31 09:11

CentOS 6で期待通り動くHTML/JavaScriptのページが、Winodws 7のChromeでは動きません。ダイアログから元のウィンドウに値が渡りません。ちなみに、WindowsのFirefoxでは期待通り動きます。

そのプログラムとは、JavaScriptでモードレスダイアログを実現する例として作ったもので、以降に示したように作っています。コーディング方法がまずいのでしょうか?それとも、Windowsでは動かないものなんでしょうか?

main.html:

html

1<!-- http://shoyu-ramen23.jugem.jp/?eid=203 --> 2<!DOCTYPE html> 3<html lang="en"> 4<head> 5 <meta charset="UTF-8"> 6 <title></title> 7</head> 8<body> 9<!-- 10 http://www.ne.jp/asahi/hishidama/home/tech/jscript/dialog.html 11 --> 12<SCRIPT language="JavaScript"> 13 function popup_modeless(url) { 14 var newWin = window.open( 15 'about:blank', //ダミーの移動先 16 'pop', //ターゲット名(formタグのtargetと同じ値にする) 17 "width=320, height=180" 18 ); 19 var f = document.form01; 20 f.action = url; 21 f.submit(); 22 newWin.focus(); 23 } 24</SCRIPT> 25window.openで開いた子ウィンドウからwindow.openerプロパティを使って親ウィンドウのテキストボックスに値を設定する 26<input value="子ウィンドウを開く" type="button" onclick="popup_modeless('dialog.html')"> 27<div id="title01"></div> 28<form action="" name="form01" target="pop"> 29 <label for="subject01">架空の入力1</label> 30 <input name="text01" readonly="readonly" id="subject01" type="text"> 31</form> 32</body> 33</html>

dialog.html:

html

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <script src="js/sample.js" type="text/javascript"></script> 7</head> 8<body> 9果物を選んで下さい 10 11<ul> 12 <li><a href="javascript:setFormInput('いちご');">いちご</a></li> 13 <li><a href="javascript:setFormInput('りんご');">りんご</a></li> 14 <li><a href="javascript:setFormInput('みかん');">みかん</a></li> 15</ul> 16 17<input type="button" value="子ウィンドウを閉じる" onClick="window.close();"> 18</body> 19</html>

js/sample.js:

javascript

1/* 2 親ウィンドウのテキストボックスへ値をセット 3 */ 4function setFormInput(string) { 5 if (!window.opener || window.opener.closed) { 6 window.close(); 7 } else { 8 // window.openerを使って開いた元のDOMにアクセスできる 9 window.opener.document.getElementById('title01').innerHTML = string; 10 window.opener.document.form01.text01.value = string; 11 } 12}

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

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

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

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

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

guest

回答2

0

自己解決

JQueryでやることにしました。
お騒がせしました。

投稿2015/07/31 10:36

tchofu

総合スコア87

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

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

0

これですかね。

http://shoyu-ramen23.jugem.jp/?eid=203

ポップアップが開かないのか、値の受け渡しができないのか…どこが「動いていない」のかを具体的に述べていただければ助かります。

投稿2015/07/31 08:12

yu-ri

総合スコア634

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

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

tchofu

2015/07/31 09:12

コメントありがとうございます。 Chromeでは、ダイアログ(dialog.html)から元のウィンドウ(main.html)に値が渡りません。
yu-ri

2015/07/31 12:59

うーむ私のChromeでは動いてしまいました(汗 お力になれず申し訳ないです。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問