プロが教えるわが家の防犯対策術!

おはようございます。
困っています。

AというウィンドウにてJavaScriptから新しく開いたBという子ウィンドウにある document.myForm.textbox.value に任意も文字列「あああ」と表示させたいとするとどう書けばいいでしょうか?

フレームであれば、parent.headarea.~をつければいけますが・・・。

Bウィンドウは「win1」というウィンドウです。

BにJavaScriptを書くのではなく、開いたAに書きたいのですが。。。

宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

こんにちは



親ウィンドウで

subwin = document.open("sub.html","win1","");

といった感じで、子ウィンドウを開いていますよね。

subwin.document.myFOrm.textbox.value = "あああ" ;

とかやれば、入力できると思いますが、如何ですか?
    • good
    • 0

既に回答済みですけど、こんな感じですか。



a.html
'*********************************************
<script language="javascript">
<!--
var win1 = window.open("bb.htm", "");
function test1()
{
win1.document.myForm.textbox.value = "あああ";
}
//-->
</script>
<input type="button" name="btn1" value="test" onclick="javascript:test1();">
'*********************************************

b.html
'*********************************************
<form name="myForm">
<input type="text" name="textbox" value="">
</form>
'*********************************************
    • good
    • 1

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q子→親ウインドウへデータを受け渡し、子ウィンドウを閉じる。

このような処理はできないでしょうか?

子ウィンドウはコード番号の検索用。該当のコードのリンクをクリックすると、そのコード番号を親ウィンドウのテキストボックスへ落とし込む。そのタイミングで、子ウィンドウは閉じる。
子→親ウインドウへのデータの受け渡しと、子ウィンドウのクローズを同時に行うようなイメージです。
よろしくお願いします。

Aベストアンサー

こんにちは

【親ウィンドウ】
<form action="xxx.php" method="POST" name="myForm">
顧客コード
<input type="text" name="kokyaku_cd" size="10">
<a href="javascript:void(0)" onClick="window.open('search.html','search','menubar=no,height=400,width=300');">検索</a>
</form>

【子ウィンドウ】
<script language="javascript"><!--
function ich(n) {
window.opener.document.myForm.kokyaku_cd.value=n;
window.close();
}
//--></script>

<table>
<tr>
<th>顧客コード</th>
<th>顧客名称</th>
</tr>
<tr>
<td><a href="javascript:ich('ABC商店')">0001</a></td>
<td>ABC商店</td>
</tr>
<tr>
<td><a href="javascript:ich('DEF商店')">0002</a></td>
<td>DEF商店</td>
</tr>
</table>

もしくはNo.1様の言うようにidを設定して
【親画面】
<input type="text" name="kokyaku_cd" size="10" id="kokyaku_cd">

【子画面 function内】
window.opener.document.getElementById("kokyaku_cd").value=n;

でできると思います

こんにちは

【親ウィンドウ】
<form action="xxx.php" method="POST" name="myForm">
顧客コード
<input type="text" name="kokyaku_cd" size="10">
<a href="javascript:void(0)" onClick="window.open('search.html','search','menubar=no,height=400,width=300');">検索</a>
</form>

【子ウィンドウ】
<script language="javascript"><!--
function ich(n) {
window.opener.document.myForm.kokyaku_cd.value=n;
window.close();
}
//--></script>

<table>
<tr>
<th>顧客コード</th>
<t...続きを読む

Qwindow.openで値の渡し方を教えてください。

画像をクリックするとwindow.htmlで新しいウインドウが開き、「IMG/AAA.jpeg」という値をwindow.htmlに渡して、画像を表示したいのですが、どのようにすればよいでしょうか。

画像をクリック(photoOpnに値が渡される)→関数photoOpn実行(window.htmlに値が渡される)→window.html表示(値を受け取り画像を表示)といった具合にしたいのですが・・・。

<html>
<head>
<script type="text/javascript"><!--
photoOpn(value){
window.open("window.html");
}
//--></script>
</head>

<body>
<a href="javascript:photoOpn('IMG/AAA.jpeg')"><img src="IMG/AAA.jpeg"></a>
</body>

ここまではやってみたのですが、window.htmlにどのように値を渡せばいいのでしょうか。

Aベストアンサー

>>1
> 結構複雑になってしまいますね。Javascriptを勉強してまもないので
> 難しく感じてしまいます(笑)
> 図々しいとは思いますが、少しながら関数等のscriptの説明をして
> 頂けませんでしょうか。

すみませんでした。
自分でやるときもなかなかコメントつける癖がなくて暫く経ったら
自分の書いたコードさえ解読できなくなることが多々あったりします。
それでも、コメント書くのが面倒だったりそもそも適切なコメントが
思い浮かばずつい、省略してしまうことが多くて自分でも困っていたり
します。(^_^;

やっていること自体は決して複雑ではないはずなんですけど、確かに
難しいかも知れませんね。

// URL エンコード
url = encodeURIComponent(url);

これはURLエンコードしています。
クエリに非ASCII文字列などを含めるときはURLエンコードします。
スラッシュはディレクトリ区切りとしても使用されているのでURLと
しては使用可能ですが念のためにURLエンコードしています。
因みにJavaScriptにはURLエンコードする関数がいくつかありますが
スラッシュをエンコードできるのは上記の関数のみのようです。
また、日本語などの文字列が含まれる場合、元の文字列が何であっても
強制的にUTF-8としてURLエンコードしてしまいますのでご注意ください。

window.open('window.html?url=' + url);

これはそのまま、URLにクエリを追加して渡しているだけです。

var query = location.search.substr(1).split('&');

ここが一番分かりにくい可能性がありますが

location.search

はURLのクエリの部分(?含む)を文字列オブジェクトとして返します。

.substr(1)

は1文字目(?を飛ばす)移行を取得しています。

.split('&')

は '&' を区切りとして分割し配列として返します。
(念のため複数のクエリが渡されたときを考慮して)

var base = './';

これは画像ファイルのURLパスです。
相対パスと絶対パスどちらも指定できます。
最後は必ずスラッシュで終わってください。

if(query != '') {

これはクエリがから文字列でなかったらという条件文です。
この条件に一致したらこれ以降のブロックを実行します。

var req = new Array();
for(var i = 0; i < query.length; i++) {
var key = query[i].split('=');
req[decodeURIComponent(key[0])] = decodeURIComponent(key[1]);
}

ここは、各クエリを連想配列に代入しています。
ここはPerlCGIなどで使用されている部分をそのままJavaScriptに
移植してみました。
代入するときにキーと値の両方をURLデコードしています。

var img = document.createElement('img');
img.setAttribute('src', base + req['url']);
document.getElementById('img').appendChild(img);

ここは img エレメントを作成し、 'img' のIDをもつエレメントの
子要素として作成した img エレメントを追加しています。

あと、うっかり忘れていて説明している段階で気がついたのですが
上記のコードの前に req['url'] があるかどうか調べないとエラーが
でる可能性が...。

説明が下手なので却って分かりにくいかも知れませんがご了承ください。
かくコード部分の詳細はネットで調べた方が早くてもっと分かりやすく
説明している所があると思いますよ。
(そもそも上記はほとんどネットから集めた情報を組み合わせただけ
ですので)

>>1
> 結構複雑になってしまいますね。Javascriptを勉強してまもないので
> 難しく感じてしまいます(笑)
> 図々しいとは思いますが、少しながら関数等のscriptの説明をして
> 頂けませんでしょうか。

すみませんでした。
自分でやるときもなかなかコメントつける癖がなくて暫く経ったら
自分の書いたコードさえ解読できなくなることが多々あったりします。
それでも、コメント書くのが面倒だったりそもそも適切なコメントが
思い浮かばずつい、省略してしまうことが多くて自分でも困っていたり
しま...続きを読む

Q画面間でのJavaScriptでの値の受け渡しについて

お世話になります。

画面(ASPで作成した画面)間でのJavaScript同士の値の受け渡しは出来るのでしょうか。

画面1から画面2を開き、画面2のJavaScriptの関数内で画面1のJavaScriptの値を変えると言った事は出来るのでしょうか。

何方かご存知でしたら、お教え下さい。
宜しくお願い致します。

Aベストアンサー

IEとFireFoxで試してみましたけど、できそうですね。
tes1.htmlからtes2.htmlを開いた場合のソースです。
関数はボタンとかから適当に呼んでください。

// tes1.htmlのJavaScript
var value=0;
function msg () {
alert(value);
}
function openWnd () {
wnd = window.open("tes2.html");
}

// tes2.htmlのJavaScript
function count () {
opener.value++; // openerが親元
alert(opener.value);
}

Q子画面へデータを渡したい!

親画面でテキスト入力した内容を、
showModalDialogで開いたポップアップの子画面で表示して、更にHiddenで値を持たせたいんですが、上手く出来ないんです...

(親側制御)
val = test.asp
args = new Array();
args[0] = document.FRM00.txtUSRID.value;
args[1] = document.FRM00.work_date.value;
ret = window.showModalDialog(val,args);

(子画面制御)
Private myUser
myUser = window.dialog.arguments[0].value;
myTargetDate = window.dialog.arguments[1].value;


子画面で、VBScriptで宣言した変数へ格納しようとしてるのですが、やっぱり無理なんでしょうか?
もし無理なら、何か他に手はないのでしょうか???

Aベストアンサー

dialogArgumentsはJavaScriptのプロパティですので
<Script>内で使用しなくてはいけません。

あとはNo.1の方のおっしゃるとおり、
window.dialog.arguments[0].value;
ではなく
window.dialogArguments[0];
ですね。

(子画面側ソース)
<HTML>
<Head>
<Script Language="JavaScript">
<!--
myName = window.dialogArguments[0];
myTel = window.dialogArguments[1];
//-->
</Script>
<Title>PopUpTest</Title></Head>
<Body>
<Center>
<Script Language="JavaScript">
<!--
document.write("名前:"+myName+"<BR>");
document.write("Tel:"+myTel);
//-->
</Script>
</Center>
</Body>
</HTML>

dialogArgumentsはJavaScriptのプロパティですので
<Script>内で使用しなくてはいけません。

あとはNo.1の方のおっしゃるとおり、
window.dialog.arguments[0].value;
ではなく
window.dialogArguments[0];
ですね。

(子画面側ソース)
<HTML>
<Head>
<Script Language="JavaScript">
<!--
myName = window.dialogArguments[0];
myTel = window.dialogArguments[1];
//-->
</Script>
<Title>PopUpTest</Title></Head>
<Body>
<Center>
<Script Language="JavaScript">
<!--...続きを読む

Qwindow.openerを使っての操作

JavaScript初心者です。

JavaScriptのwindow.openerを使って、
子ウィンドウから親ウィンドウに値を渡す、
ということをしたいのですが、うまくできません。
実装したい環境はIE6です。。

こちらのページのサンプルにあるソースをそのまま貼り付けてみても動きませんでした。
http://shoyu-ramen23.jugem.jp/?eid=203
ただ、サンプルはこちら、と書いてあるページのものは動きます。
(実際記載されているソースとは違うのではないかと思いますが)
 *ちなみにGoogleChromeでも同じ結果でした。ソース自体何か誤りがあるのでしょうか

サンプルのように子ウィンドウにある選択肢を一つクリックすると
その値が親ウィンドウの特定のテキストエリアに渡される
・・というものすらうまくできないのですが、

子ウィンドウでチェックボックス式の選択肢を用意して、
子ウィンドゥ側で「選択」等の決定ボタンが押されたときに、チェックが入っている選択肢の内容が
カンマで区切られて親ウィンドウのテキストエリアに渡される・・・
というものを作成したいのです。
 子ウィンドウチェックボックスで、りんごとみかんとバナナにチェックが入っていれば
 親ウィンドウのテキストエリアには「りんご,みかん,バナナ」といったふうにです。

こういったものは作成できるものなのでしょうか。
それともJavaScriptでやるようなことではないのでしょうか。
JavaScriptでできる場合どのようにすればよいのでしょうか?

せめてサンプルだけでも動かせるようにしたいです。。
他にもいろいろと試してみましたがどうにも動きません・・
よろしくお願い致します。

JavaScript初心者です。

JavaScriptのwindow.openerを使って、
子ウィンドウから親ウィンドウに値を渡す、
ということをしたいのですが、うまくできません。
実装したい環境はIE6です。。

こちらのページのサンプルにあるソースをそのまま貼り付けてみても動きませんでした。
http://shoyu-ramen23.jugem.jp/?eid=203
ただ、サンプルはこちら、と書いてあるページのものは動きます。
(実際記載されているソースとは違うのではないかと思いますが)
 *ちなみにGoogleChromeでも同じ結果でした。ソース自体何か...続きを読む

Aベストアンサー

<html>
<head>
<title>子ウィンドウ</title>
<script>
function setFormInput(val){
  if(!window.opener || window.opener.closed){
    //親ウィンドウが存在しない
    window.close();
  } else{
    //window.openerで親ウィンドウのオブジェクトを操作
    window.opener.document.getElementById('title01').innerHTML = val;
    window.opener.document.form01.text01.value = val;
    window.close();
  }
}

function OC(){
var d=document.getElementsByTagName("input")
var a=[]
for(var i=0;i<d.length;++i){
if(d[i].checked){a.push(d[i].nextSibling.textContent)}
}
setFormInput(a.join())
}
</script>
</head>
<body>
好きな果物を選んで下さい。<br>
<input type="checkbox">いちご<br>
<input type="checkbox">りんご<br>
<input type="checkbox">みかん<br>
<input type="button" value="選択" onClick="OC();window.close();return false;">
</body>
</html>

<html>
<head>
<title>子ウィンドウ</title>
<script>
function setFormInput(val){
  if(!window.opener || window.opener.closed){
    //親ウィンドウが存在しない
    window.close();
  } else{
    //window.openerで親ウィンドウのオブジェクトを操作
    window.opener.document.getElementById('title01').innerHTML = val;
    window.opener.document.form01.text01.value = val;
    window.close();
  }
}

function OC(){
var d=document.getElementsByTagName("inpu...続きを読む

Q開いたサブウインドウから値を取得したい

例えばa.htmlに
テキストボックスとサブウインドウ(b.html)を開くボタンがあって
ボタンを押下するとb.htmlが開き、その画面でチェックボックスを
複数チェックしてボタンを押下するとb.htmlは閉じられて
チェックした値がa.htmlのテキストボックスに入ってくるというような
処理をしたいのですが、JavaScriptの知識が0なのでどう書けばいいのか
全く想像もつきません。
何方か教えていただけないでしょうか。
よろしくお願いします(^^

Aベストアンサー

>JavaScriptの知識が0なのでどう書けばいいのか
どう書けば解ったところで0ならどうしようもないような気がしますが、
1つのサンプル
メインのウィンドウでボタンを押すとサブのウインドウが開き、
チェックボックスをチェックしてボタンを押すと、
チェックされたチェックボックスの値を合算して、サブウィンドウは閉じて)メインウインドウのテキストボックスに表示します。
a.html
-------------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS">
<title>メインウインドウ</title>
</head>
<body>
<form name="FORMA">
<input name="RESULT" type="text" value="0">
<button type="button" onclick="window.open('b.html','SUBWINDOW','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,width=300,height=300')">チェックボックスでチェックする</button>
</form>
</body>
</html>
------------------------------------------------------------------
b.html
------------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS">
<title>サブウインドウ</title>
<script type="text/javascript">
<!--
function goBack(){
var ckList=document.getElementsByName("checkList");
var value=0;
for(var i=0;i<ckList.length;i++){
if(ckList[i].checked)
value+=parseInt(ckList[i].value);
}
window.opener.document.FORMA.RESULT.value=value;
window.close();
}
//-->
</script>
</head>
<body>
<form name="FORMA">
<input type="checkbox" name="checkList" value="1" id="ck1">
<label for="ck1">A</label>
<input type="checkbox" name="checkList" value="2" id="ck2">
<label for="ck2">B</label>
<input type="checkbox" name="checkList" value="4" id="ck3">
<label for="ck3">C</label>
<input type="checkbox" name="checkList" value="8" id="ck4">
<label for="ck4">D</label>
<button type="button" onclick="goBack()">メインウインドウに戻る</button>
</form>
</body>
</html>

>JavaScriptの知識が0なのでどう書けばいいのか
どう書けば解ったところで0ならどうしようもないような気がしますが、
1つのサンプル
メインのウィンドウでボタンを押すとサブのウインドウが開き、
チェックボックスをチェックしてボタンを押すと、
チェックされたチェックボックスの値を合算して、サブウィンドウは閉じて)メインウインドウのテキストボックスに表示します。
a.html
-------------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4...続きを読む

Qwindow.openで開いた子ウィンドウから親ウィンドウのjavascriptを実行するには

window.openで開いた子ウィンドウから親ウィンドウのjavascriptを実行するにはどうしたらよいのでしょうか。

子ウィンドウから
<INPUT TYPE="button" value=\"実行\" onClick=opener.document.jikkou();>

<INPUT TYPE="button" value=\"実行\" onClick=opener.jikkou();>
等のボタンを作ってみましたが、無反応でした。

すいません。宜しくお願いします。

Aベストアンサー

普通に実行できると思いますが・・・

//parent.htm
<script>
function jikkou(){
alert("ok");
}
</script>
<input type="button" value="open child" onclick="window.open('child.htm')">

//child.htm
<input type="button" value="jikkou" onclick="opener.jikkou()">

Q入力したテキストボックスのデータを別Webページに渡したい

テキストボックスを持つ2つのWebページ(A.html,B.htmlとします)があります。
A.html内にB.htmlを開くJavaScript
(window.open("B.html");)を記述しています。

このスクリプトを実行したらB.htmlを新しいウィンドウで開きますが、
このBページ内のテキストボックスに文字データを入力して、
OKを押したら、A.htmlのテキストボックスにデータを表示させたいのです。
こういうことはJavaScriptだけでできないのですか?
cgi+JavaScriptを使わないとできないのでしょうか?

フレーム間の場合はできそうですが、ウィンドウ間と言うのは出きるのか
不明です。
ご存知の方、よろしくお願いします。

Aベストアンサー

説明のために、
A.html、B.htmlのフォーム、テキストボックスをそれぞれform_a、form_b、txtbox_a、txtbox_b
としますね。

B.html内で、テキストボックスの文字データは
document.form_b.txtbox_b.value
と表せます。同様に、A.html内で、テキストボックスの文字データは
document.form_a.txtbox_a.value
と表せます。
ここで、B.htmlはA.htmlから開いた子ウィンドウですので、B.htmlから見てA.htmlは「このウィンドウを開いたウィンドウ」と表すことができるため、
window.opener
でアクセスできます。
つまり、B.htmlで、JavaScriptで
window.opener.document.form_a.txtbox_a.value = document.form_b.txtbox_b.value ;
と表記すれば実現できるかと思います。

Q子ウィンドウの存在確認

子ウィンドウが開いていない場合にのみ子ウィンドウを開くような下記の処理があるとします。

function OpenSubWindow()
{
if(!w.closed()){
alert('閉じろ!');
}else{
w = window.open("a.html","sub","resizable=no,scrollbars=no");
}
}

この場合、当然のことですが、変数wはelseの中で初めて初期化されるため、ifの条件でオブジェクトが存在しないことによりエラーが発生します。

でも、"sub"というname属性のウィンドウが開いているかどうかを確認したいのですが、どうすればよいのでしょうか?wを初期化する方法が何かあるのでしょうか?それとも、subウィンドウのopen/closeの状態を管理するロジックを作りこまないといけないのでしょうか?

Aベストアンサー

細かなロジックを考える必要はありませんよ。
w がオブジェクトかどうか分からない時点で w.closed を評価するのがマズイだけですから、評価の順番を変えればいいんです。

var w;
function OpenSubWindow() {
  if (!w || w.closed)
    w = window.open("a.html", "sub", "resizable=no,scrollbars=no");
  else
    alert("閉じろ!");
}

ちなみに closed はメソッドではなくプロパティですので、w.closed() ではエラーとなります。
また、既に開いているときの処理は
  w.focus();
とすれば子ウィンドウがアクティブになるのでオススメです。

Qjavascriptでセレクトボックスの"selected"を動的につ

javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。

現在、以下のようなフォームを作成しました。

<select name='year'>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
</select>月

<select name='day'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
<option value='13'>13</option>
<option value='14'>14</option>
<option value='15'>15</option>
<option value='16'>16</option>
<option value='17'>17</option>
<option value='18'>18</option>
<option value='19'>19</option>
<option value='20'>20</option>
<option value='21'>21</option>
<option value='22'>22</option>
<option value='23'>23</option>
<option value='24'>24</option>
<option value='25'>25</option>
<option value='26'>26</option>
<option value='27'>27</option>
<option value='28'>28</option>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
</select>日


このセレクトボックスに、例えば今日の日付"2010年9月30日"だったら、それぞれの年、月、日の<option>に"selected"をつけたいのですが、javascriptではどのようにして実現したら良いのでしょうか?

よろしくお願いします。

javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。

現在、以下のようなフォームを作成しました。

<select name='year'>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8...続きを読む

Aベストアンサー

こんな感じで・・・

<script>
window.onload=function(){
var f=document.getElementById("f0");
var ymd=new Date();
checkSelect(f.elements["year"],ymd.getFullYear());
checkSelect(f.elements["month"],ymd.getMonth() +1);
checkSelect(f.elements["day"],ymd.getDate());
}
function checkSelect(obj,val){
for(var i=0;i<obj.length;i++){
if(obj[i].value==val){
obj[i].selected=true;
break;
}
}
}
</script>
<form id="f0">
<div>
<select name='year'>
<option value='2009'>2009</option>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>月

<select name='day'>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
</select>日
</div>
</form>

こんな感じで・・・

<script>
window.onload=function(){
var f=document.getElementById("f0");
var ymd=new Date();
checkSelect(f.elements["year"],ymd.getFullYear());
checkSelect(f.elements["month"],ymd.getMonth() +1);
checkSelect(f.elements["day"],ymd.getDate());
}
function checkSelect(obj,val){
for(var i=0;i<obj.length;i++){
if(obj[i].value==val){
obj[i].selected=true;
break;
}
}
}
</script>
<form id="f0">
<div>
<select name='year'>
<opt...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング