2010-12-29 2 views
0

_Dataaddr_postcode라는 이름의 html 필드에 읽기 전용 필드가 있습니다.이 데이터를 캡처하여 다른 파일 (proxcomp.asp)을로드하는 새 창으로 전달해야합니다. 이 페이지의 필드에 데이터를 사용하면 해당 필드의 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();" /> 

누군가는 방법 몇 가지 샘플 코드와이를 달성하는 방법을 말해 줄래?

감사합니다.

저스틴.

답변

0

:

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 때문에 두 창은 URL에 동일한 프로토콜, 호스트 이름 및 포트 번호가 있어야합니다. 당신은 당신이 opener라는 어떤 변수를 사용하지 않는 경우에 한해, 원하는 경우

// 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 

당신은 window.openerwindow. 일부를 생략 할 수 있습니다.

0

은 어쩌면이 일을 :

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

또는 열린 창에서

:

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

이 큰 article을 읽어 보시기 바랍니다! 서버 측 스크립트로 폼 입력으로 단지 하나 개의 필드를 전달