2010-12-29 6 views
0

私は、このデータをキャプチャして別のファイル(proxcomp.asp)をロードする新しいウィンドウに渡す必要がある、_Dataaddr_postcodeの名前を持つhtmlフィールドの読み取り専用フィールドを持っています。このページのフィールドにデータを使用すると、フィールドのIDはinpAddrになります。新しいウィンドウのポストコードを取る

私はこれまでのところ、このコードを持って

<script type="text/javascript"> 
var pcodeStart = document.getElementbyId("_Dataaddr_postcode"); 
var newWindow; 
function makeNewWindow() { 
if (!newWindow || newWindow.closed) { 
newWindow = window.open("../hpwprox/proxcomp.asp","sub","status=0,title=0,height=600,width=800"); 
setTimeout("writeToWindow()", 50); 
} else if (newWindow.focus) { 
newWindow.focus(); 
} 
} 
</script> 
<input type="button" value="Create New Window" onclick="makeNewWindow();" /> 

誰かがいくつかのサンプルコードでこれを実現する方法を教えてもらえますか?

ありがとう

ジャスティン。この偉大articleをお読みください

document.getElementById('inpAddr').value = opener.document.getElementbyId("_Dataaddr_postcode").value; 

newWindow.document.getElementById('inpAddr').value = pcodeStart; 

または、開いているウィンドウから:

答えて

0

サーバーサイドスクリプトにフォームの入力としてちょうどその1つのフィールドを渡す:あなたはポップアップではなく、サーバー側でテキストボックスを設定するには、クライアント側のコードを使用したい場合は

var genForm = document.createElement("form"); 
genForm.target = "sub"; 
genForm.method = "get"; // or "post" if appropriate 
genForm.action = "../hpwprox/proxcomp.asp"; 

var genInput = document.createElement("input"); 
genInput.type = "hidden"; 
genInput.name = "inpAddr"; 
genInput.value = pcodeStart.value; 
genForm.appendChild(genInput); 

document.body.appendChild(genForm); 

if(!newWindow || newWindow.closed) { 
    window.open("", "sub", "status=0,title=0,height=600,width=800"); 
} else if(newWindow.focus) { 
    newWindow.focus(); 
} 

genForm.submit(); 

コードを追加する場合は、追加する遅延とページの読み込み時間が互いに「競合する」ことを避けるために、ポップアップウィンドウから行う必要があります。 JavaScriptでは、グローバル変数は内部にあるウィンドウオブジェクトのプロパティで、window.openerはこれを開いたウィンドウを与えます。 same-origin policyのため、2つのウィンドウはURLに同じプロトコル、ホスト名、およびポート番号を持つ必要があります。

// Using the variable referring to the text box: 
document.getElementById('inpAddr').value = window.opener.pcodeStart.value; 

// Or even using getElementById directly: 
document.getElementById('inpAddr').value = window.opener.document.getElementById('inpAddr').value 

あなたは、あなたがopenerと呼ばれる無変数を使用していないことを提供したい場合は、window.openerwindow.一部を省略することができます。

0

は多分これをやって!

関連する問題