在新窗口中将邮政编码带到新字段

时间:2010-12-29 17:23:48

标签: javascript html dom asp-classic dhtml

我在html字段上有一个只读字段,其名称为_Dataaddr_postcode我现在需要捕获此数据并将其传递到一个新窗口,该窗口加载另一个文件(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();" />

有人可以通过一些示例代码告诉我如何实现这一目标吗?

谢谢

贾斯汀。

2 个答案:

答案 0 :(得分:0)

也许这样做:

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

或者从打开的窗口:

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

请阅读这篇精彩的article

答案 1 :(得分: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中具有相同的协议,主机名和端口号。

// 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部分。