あなたが何を経験しているのか正確にはわかりませんが、開発および本番アプリケーションの IE (6、7、および 8) で定期的に子ポップアップからオープナーにデータを正常に保存しました。
提供できる URL またはその他のソース コードはありますか?
関連するメモについて...オープナー上のオブジェクトのタイプを判断しようとしているのではありません...ポップアップからですか?- この領域には既知の IE バグがいくつかあります。
アップデート:
ここに簡単な例があります...
<!--main window-->
<script>
function getThing(id){
url = 'http://mysite.com/...whatever...';
features = 'locationbar=X,menubar=Y...';
window['popup4'+id] = open(url, 'someNameWithoutSpaces', features);
}
function popupCallback(data){
alert('I got data back! ' + data);
document.getElementById('someID').innerHTML = '<b>' + data.label + ' (' + data.id + ')</b>';
//close the popup (now that we have/are done with the data)
window['popup4someID'].close();
}
</script>
<div id="someID">{Nothing Selected Yet}</div>
<input type="button" value="Pick One" onclick="getThing('someID');"/>
<!--popup window-->
<script>
function saveSelection(){
//acquire data however you want/need
var selData = {};
selData.id = 123456;
selData.label = 'iPod Touch (Jeff Atwood Edition)';
//call callback on opener
window.opener.popupCallback(selData);
}
</script>
更新 2
テストでは、IE7、IE8 (ただし IE6 ではない) では、ポップアップ ウィンドウが閉じられた後、参照データが失われるようです (参照はスナップショットをキャプチャしません)。したがって、ポップアップが閉じられた後にデータが必要な場合は、それを複製する必要があります。
データを配列にラップできれば、クローン作成は簡単だと思いました。.slice() を呼び出してコピーするだけですが...それも機能しません!
IEはポップアップが閉じた後にそれらを使用できるように見えないため、必要な値を保存する必要があると思います(要素またはDOMを形成するため)。:-(