プロが教える店舗&オフィスのセキュリティ対策術

JavaScript初心者です。

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

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

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

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

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

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

A 回答 (2件)

<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>
    • good
    • 1

<script language="text/javascript">


が間違っています
    • good
    • 0
この回答へのお礼

おぉぉぉぉ!!ありがとうございます!
ご指摘の通り、<script type="text/javascript">
に書き換えたところ、IEで動きました。
とりあえずサンプルを動かすことができたこと、とてもうれしいです。

作りたいプログラムについて、もありますので
もう少し「質問中」にさせていただきますね。

自分でもいろいろやってみます。
道が開けました。ありがとうございます。

お礼日時:2012/12/26 19:53

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