Я пытаюсь передать данные из текстовых полей с помощью GetElementById.
это мое текстовое поле:
<tr>
<td>Your name:</td>
<td> <input type="text" name="name" id = "p_name"/><br /></td>
</tr>
И это мои функции:
function mypopup()
{
mywindow = window.open("Page_preview.html","width=200,height=200");
mywindow.moveTo(0, 0);
}
function load()
{
document.write("<p>" + Date() + "</p>");
var myTextField = document.getElementById('p_name');
if(myTextField.value != "")
alert("You entered: " + myTextField.value)
}
Метод загрузки вызывается внутри тела page_preview.html.
Это кнопка, которая запускает функцию mypopup:
<input type="button" onclick="mypopup()" value="Show preview" />
Все работает, за исключением того, что document.getElementById('p_name') никогда не возвращает значение, как будто не может его найти.
Я уверен, что это можно сделать легко (я новичок в этом).
document.getElementById()
получит элемент в текущем документе, то есть не будет искать его в других окнах. Одним из способов передачи данных из одного окна в другое является использование.getElementById()
в вашей функцииmypopup()
и передача значения в Page_preview.html в строке запроса, т. е. при открытии второго окна установите URL-адрес"Page_preview.html?name=" + encodeURIComponent(document.getElementById("p_name").value)
. - person nnnnnn   schedule 06.02.2012