1

こんにちは私はここで問題があります。子ウィンドウからボタンをクリックしてテキストフィールドの値を変更しようとすると、機能しません。

親ウィンドウ

<html> 
<script language="javascript"> 
function openWindow() { 
  window.open("target.html","_blank","height=200,width=400, status=yes,toolbar=no,menubar=no,location=no") 
} 
</script> 
<body> 
<form name=frm> 
<input id=text1 type=text> 
<input type=button onclick="javascript:openWindow()" value="Open window.."> 
</form> 
</body> 
</html>

target.htmlである子ウィンドウ

<html> 
<script language="javascript"> 
function changeParent() { 
  window.opener.document.getElementById('text1').value="Value changed.." 
} 
</script> 
<body> 
<form> 
<input type=button onclick="javascript:changeParent()" value="Change opener's textbox's value.."> 
</form> 
</body> 
</html>

私が本当にやりたいのは、子ウィンドウからボタンをクリックしたときです...子ウィンドウが閉じられ、親ウィンドウのテキストフィールドが「オープナーのテキストボックスの値を変更します。」に変更されます。これは、子ウィンドウから選択しました。

4

1 に答える 1

1

Javascriptは基本的にウィンドウに制限されています。別のウィンドウに値を送信することはできません(これはすばらしいことです)。

親ウィンドウと子ウィンドウが相互に通信する方法はいくつかありますが、ブラウザー間の問題がいくつかあります。http: //www.codehappiness.com/post/access-parent-window-from-child-window-or-access-child- window-from-parent-window-using-javascript.aspx

最も簡単な解決策は、新しいウィンドウを開くのではなく、同じウィンドウ内のモーダルボックスを開くことです。これは、ポップアップボックスとして表示されるようにスタイル設定されたdivにすぎません。noobがこれを行う最も簡単な方法は、jqueryuiモーダル機能を使用することです。

幸運を!!

于 2012-09-01T17:42:53.617 に答える