0

簡単かもしれませんが、面白いのは、2〜3時間ほど試してみて、解決できなかったことです:(。

テキストボックスのある親ウィンドウがあり、値があります。window.openを実行してクライアントを開き、親の値を読み取ろうとしましたが、値を取得できません。

助けて!

私はもう試した

  1. window.parent.document.getElementById(window.name)
  2. window.parent.document.getElementById('test').value
  3. window.opener.document.getElementById('teast').value
  4. window.parent.opener.document.getElementById('teast').value
  5. window.opener.parent.document.getElementById('teast').value

ほとんどすべての順列と組み合わせ。そしてその純粋なHTML。

4

3 に答える 3

1

window.opener.document.getElementById('test').value動作するはずです。

于 2009-11-23T18:03:03.133 に答える
1

セキュリティ上の制限により、Javascript は現在のドメインとは別のドメインに存在するドキュメントにアクセスできません。したがって、親が子とは異なるドメインにある場合、これは機能しません

于 2009-11-23T18:26:03.917 に答える
0

私はそれを試しましたが、うまくいきません。コードを掲載しています

test.html

<html>
<head>
<title>Chat</title>
</head>
<body>

<div id="chatMessages"></div>
<script>

var newWin = null;  
var OpenWindow = null;
function popUp(strURL, strType, strHeight, strWidth) {  
 if (newWin != null && !newWin.closed)  
   newWin.close();  
 var strOptions="";  
 if (strType=="console")  
   strOptions="resizable,height="+  
     strHeight+",width="+strWidth;  
 if (strType=="fixed")  
   strOptions="status,height="+  
     strHeight+",width="+strWidth;  
 if (strType=="elastic")  
   strOptions="toolbar,menubar,scrollbars,"+  
     "resizable,location,height="+  
     strHeight+",width="+strWidth;
 alert(window.parent.document.getElementById(window.name));
 newWin = window.open(strURL, 'alertWindow', strOptions);

 //newWin.document.getElementById("child").value='Str';  
newWin.focus();  
// send_data(data);
}


function chat() {
    popUp('../alert.jsp','console',250,600);
}

</script>

<form name="AlertReceiverOnHeader" onclick="chat()">
<input type="text" value="teast" id="teast" name="teast"/>
</form>

</html>

child.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Alert</title>
</head>
<body onload="load()">


<script language="JavaScript">

function load() {
    alert('In load');
    alert("001="+window.parent.document.getElementById('teast'));
    alert("002="+window.parent.document.getElementById(window.name));
    alert("003="+window.opener.document.getElementById('teast').value);

}
</script>

<form name="child">
<input type="text" id="child" value="child"/>
</form>
</body>
</html>
于 2009-11-23T18:21:40.290 に答える