Javascript window.opener difrents按钮和输入类型=按钮
敬礼。 我已经用Firefox和IE证明了这一点 如果您从按钮(window.opener不工作)调用paginaH1.html(函数openSon) 如果您从输入类型调用=按钮工作 如果单击按钮不工作(a0 ObjectWindow,a1未定义) 如果单击输入类型='button'工作(a0 ObjectWindow,a1 ObjectHtmleElement) 这是翻页程序:Javascript window.opener difrents按钮和输入类型=按钮,javascript,window.opener,Javascript,Window.opener,敬礼。 我已经用Firefox和IE证明了这一点 如果您从按钮(window.opener不工作)调用paginaH1.html(函数openSon) 如果您从输入类型调用=按钮工作 如果单击按钮不工作(a0 ObjectWindow,a1未定义) 如果单击输入类型='button'工作(a0 ObjectWindow,a1 ObjectHtmleElement) 这是翻页程序: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>prueba-Father</title>
<script type="text/javascript">
function openSon() {
window.datoPField = document.frmName.campoPadre;
alert(window.datoPField+' ahora abro hijo');
a=window.open('paginaH1.html');
}
</script>
</head>
<body>
<form name="frmName">
<h1 id="text">Comunicacion entre dos paginas con Javascript.</h1>
<input type="text" name="campoPadre" id="campoPadre" value="delPadre" >
<input type="button" onClick="openSon()" value="input-button">
<button onClick="openSon()">button</button>
<button onClick="window.datoPField = document.getElementById('campoPadre'); a=window.open('paginaH1.html');">bt+getElement</button>
</form>
</body>
</html>
普鲁巴父亲
函数openSon(){
window.datoPField=document.frmName.campadre;
警报(window.datoPField+‘ahora abro hijo’);
a=window.open('paginaH1.html');
}
通信中心的地址是Javascript。
按钮
bt+getElement
现在,pagninaH1.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Son page</title>
<script type="text/javascript">
function iniciar() {
alert(0);
alert("a0-"+window.opener);
alert("a1-"+window.opener.datoPField);
alert("b0-"+window.opener.frmName.campoPadre);
alert("c0-"+window.opener.datoPField.value);
this.datoField = opener.datoPField;
alert("d0-"+this.datoField);
}
</script>
</head>
<body ONLOAD="iniciar()">
<h1 id="text">esta es la pagina hijo </h1>
<button onclick="this.window.close();">Cerrar</button>
</body>
</html>
子页面
函数iniciar(){
警报(0);
警报(“a0-”+窗口开启器);
警报(“a1-”+窗口.开启器.数据字段);
警报(“b0-”+window.opener.frmName.campadre);
警报(“c0-”+window.opener.datoPField.value);
this.datoField=opener.datoField;
警报(“d0-”+此数据域);
}
帕吉纳之家酒店
塞拉
谢谢 元素的按钮是submit
。也就是说,x
与x
完全相同。如果在表单中有按钮
(您可以这样做),单击该按钮将在运行其单击处理程序后提交表单<代码>表单
没有操作的元素
默认提交到页面的URL,该URL会破坏当前页面并替换为新的副本(很容易丢失)
因此,当您单击输入时,它将运行其单击处理程序,开始打开弹出窗口的过程,而不执行任何其他操作。原始窗口、文档和开场白页面的元素仍然存在。子窗口可以访问这些元素
但是,当您单击按钮时,它会运行其单击处理程序,开始打开弹出窗口的过程,然后提交表单,销毁窗口、文档和元素。子窗口无法访问元素,它们不再存在。(相反,新元素存在,但子元素无权访问它们。)
如果希望按钮
的行为与输入
相同,请向其添加type=“button”
。(是的,说
似乎很可笑。:-)坦斯克,谢谢。看起来确实很可笑,但它起作用了。他还询问了关于处理者的解释