a.html
<form name="form1" method="post" action="">
<a href="javascript:void(null)" class="add" onClick="open('b.html','','resizable=1,scrollbars=1,status=no,toolbar=no,menu= no,width=500,height=400,left=150,top=50')">増加</a>
<input type="text" name="text1">
</form>
b.html
<script language="Javascript" type="text/javascript">
関数 returnValue()
{
window.opener.document.all.text1.value=document.getElementById("returnText").value;
window.close();
}
</script>
<input type="button" name="送信" value="送信" onclick="returnValue();">
<input name="returnText" type="text" id="returnText">
</p>
補足:window.openerの使い方
一般的な使用法では、window.opener はウィンドウを閉じるときにポップアップ ウィンドウが表示されないという問題を解決するためにのみ使用され、一般にその深い理解はあまり知られていません。実際、window.opener は window.open メソッドを呼び出すウィンドウを指します。
これは主に、仕事で部分的な送信を解決するために使用されます。こういったページをまたいだ操作は仕事上とても助かります。
メイン ウィンドウでページを開き、メイン ウィンドウを更新したい場合は、ページを開く window.opener がメイン ウィンドウのウィンドウに相当します。
メインウィンドウを更新するには、次のコマンドを使用できます
window.opener.location.reload();
仮想ディレクトリを使用する場合: struts *.do などでは、再試行を求めるプロンプトが表示されますが、これを window.opener.yourformname.submit() に変更できます。
それでいいよ
2〉
申請には状況があり、
ウィンドウ A でウィンドウ B を開き、ウィンドウ B での操作が完了したらウィンドウ B を閉じ、同時にウィンドウ A を自動的に更新します
関数 closeWin(){
hasClosed = true;
window.opener.location="javascript:reloadPage();";
window.close();
}
関数 window.onbeforeunload(){
if(!hasClosed){
window.opener.location="javascript:reloadPage();";
}
}
</script>
上記のコードは、ウィンドウ B を閉じるときに、オブジェクトが見つからないというエラーを表示します。正しいコードは次のとおりです。
関数 closeWin(){
hasClosed = true;
window.opener.location="javascript:reloadPage();";
window.opener=null;
window.close();
}
関数 window.onbeforeunload(){
if(!hasClosed){//closeWin メソッドが実行されている場合、このメソッドは実行されません。
window.opener.location="javascript:reloadPage();";
}
}
</script>
reloadPage メソッドは次のとおりです。
関数 reloadPage() {
歴史.go(0);
document.execCommand("更新")
ドキュメントの場所 = ドキュメントの場所;
document.location.reload();
}
PS: イベントをキャプチャするにはウィンドウの通常の終了と強制的な終了をサポートする必要があるため、グローバル変数 hasClosed を使用します。
=============================================
さらに、親ウィンドウがフレームの場合、親ウィンドウを更新するときに問題が発生する可能性があります。
情報を再送信しないとページを更新できません。
その後、次のように修正されました。
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
組み込みの reload() メソッドを実行する必要はありません。次の文を不必要に追加しないように注意してください。
window.opener.parent.document.frames.item('mainFrame').location.reload();
================================================= =====================================
最後に、通常の親ウィンドウとフレーム親ウィンドウの同時更新をサポートするため、コードは次のようになります。
関数 closeWin() {
hasClosed = true;
<%if(null != フレーム){%>
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
<%}その他{%>
window.opener.location = "javascript:reloadPage();";
<%}%>
//window.opener.top.mainFrame.location="javascript:reloadPage();";
//self.opener.frames.mainFrame.location.reload(true);
window.opener = null;
window.close();
}
関数 window.onbeforeunload(){
if (!hasClosed) {
<%if(null != フレーム){%>
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
<%}その他{%>
window.opener.location = "javascript:reloadPage();";
<%}%>
window.opener = null;
}
}
window.openerの使用法
window.opener は、現在のウィンドウを作成したウィンドウへの参照を返します。たとえば、a.htm 上のリンクをクリックして b.htm を開く場合、b.htm に値を入力し、それを a に割り当てることを計画しています。 htm の ID が「name」のテキストボックスには次のように記述できます。
window.opener.document.getElementById("name").value = "入力データ";
JavaScript の window.opener についてよく理解していません。
フレーム内で使用できないのはなぜですか? ポップアップ ウィンドウの親ウィンドウをフレーム内のページに配置できないのはなぜですか?では、ポップアップウィンドウからフレーム内の親ウィンドウを操作するにはどうすればよいでしょうか?
opener.parent.frames['frameName'].document.all.input1.value これを試してみてください:)
フレーム内のページを同じフレーム内の他のページ、または親フレーム内のページに変更したい場合は、parentを使用します。
window.opener は、window.open によって開かれたページの親ページを参照します。
window.frames オブジェクトは、iframe 内のページまたはフレームセット内のページを参照できます。
これはできる
window.frames[0].document.getElementById('xx');
これはできる
window.frames[0].document.body.innerHTML;
frm = window.parent.window.frames['uploadFrame'];
frmDocument = frm.document;
frm.sb(3); //sb は、uploadFrame ページの関数です
Firefoxの場合
エラーが発生した場合:parent.document.frames には PRperties がありません
これを次のコードに置き換えるだけです。このコードは IE および ff と互換性があります。
この方法でフレーム内のページを変更するには制限があることに注意してください。つまり、ページは同じドメインにある必要があります。同じドメインにあるがサブドメイン名が異なる場合は、アクセスできません。関連する js および html ファイルへの文。
document.domain = xxx.com [ここにドメイン名を入力してください]
document.getElementById('iframeid').contentWindow.document.getElementById('someelementid');
聞く:
親ウィンドウ内で window.open() 子ウィンドウを作成します。そして変数 i を定義します。
サブウィンドウに値 j を入力し、window.opener.i=j;
これは引き継ぐことができます。しかし、サブウィンドウの最後に window.close(); を追加しましたが、値を渡すことができません。
この問題を解決する方法があれば教えてください。子ウィンドウを閉じる前に値を渡します。
コードは次のとおりです。
親ウィンドウ:parent.jsp
<スクリプト>
変数 i;
window.open('<%=contextPath%>/usermanage/newscontrol/cd.jsp);
</script>
<input type="button" onclick="alert(i)">
サブウィンドウ:cd.jsp
<スクリプト>
関数subm(){
window.opener.i=5;
window.close();
}
</script>
<input type="button" onclick="subm()">
ベストアンサーは親ウィンドウに置くことができます
<input id="fromChild" type="hidden" />
<input type="ボタン"
onclick="alert(document.getElementById('fromChild').value)">
サブウィンドウで:
関数subm(){
window.opener.document.getElementById('fromChild').value=5;
window.close();
}
これはできる
<頭>
<スクリプト言語=javascript>
関数ウィンドウクローズ()
{ window.opener=null;
window.close();
}
</script>
</head>
<本文>
<input id="Button1" type="button" value="button" onclick="windowclose()" />
</body>
-