Перенести почтовый индекс в новое поле в новом окне - PullRequest
0 голосов
/ 29 декабря 2010

У меня есть поле только для чтения в HTML-поле с именем _Dataaddr_postcode. Теперь мне нужно захватить эти данные и передать их в новое окно, которое загружает другой файл (proxcomp.asp) и использует данные в полеу этой страницы поле имеет идентификатор 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();" />

Может кто-нибудь сказать мне, как добиться этого с помощью некоторого примера кода?

Спасибо

Джастин.

Ответы [ 2 ]

0 голосов
/ 29 декабря 2010

Передача только этого одного поля в качестве входных данных для скрипта на стороне сервера:

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 дает окно, открывшее это окно.Обратите внимание, что из-за политики одного и того же происхождения два окна должны иметь одинаковые протокол, имя хоста и номер порта в своих 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

Вы можете опустить window. часть window.opener, если вы хотите, при условии, что вы не используете переменную с именем opener.

0 голосов
/ 29 декабря 2010

Может быть, делает это:

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

Или из открытого окна:

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

Пожалуйста, прочитайте эту замечательную статью !

...