popuptest.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
</head>
<body>
<form action="#" id="formid" >
<input type="text" id="textinput" value="empty value" />
<input type="hidden" id="hiddeninput" value="empty value" />
<button type="button" onclick="window.open('popup.xhtml', 'Select Reference','status,width=400,height=400');" >Open PopUp</button>
</form>
</body>
</html>
popup.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
</head>
<body>
<button onclick="
opener.document.getElementById('textinput').value = 'text value from child pop up !';
opener.document.getElementById('hiddeninput').value = 'hidden value from child pop up !';
window.close();
">Put values to parent</button>
</body>
</html>
popuptext.xhtml を開く -> ポップアップを開くボタンを押す -> 値を親に置くを押す 親ウィンドウで観察したこと:
値が親テキスト入力に渡されたようです
しかし一方で、Chrome デバッグ (F12) で見られるもの:
ああ、神様!テキスト入力が空です! 値が非表示の入力に渡されました(予想どおり)
Chrome バージョン: 29.0.1547.76 m Firefox 24.0と同じ
このような動作について何か説明はありますか? バグですか?
テキスト入力に値を渡してからフォームを送信する必要がありますが、この場合、フォームには値が含まれていません。