![](/img/trans.png)
[英]Why do I obtain NaN when I try to perform an arithmetic operation on a value retrieved using jQuery from a an input tag?
[英]Why I obtain this error message when from a dialog I try to perform a function defined into the parent page using parent.rifiutaSingolo()?
我在尝试从定义到打开此对话框的父页面的对话框中执行JavaScript功能时遇到以下问题。
所以我有这种情况:
我有一个名为autorizzaFattura2
的父页面页面,该页面是通过此JavaScript打开对话框的页面(当用户单击链接时,打开对话框):
function openDialog2(pagina,larghezza,lunghezza,tipo) {
//alert("INTO openDialog2(), pagina: " + pagina, " larghezza: " + larghezza + " lunghezza: " + lunghezza + " tipo: " + tipo);
larghezza = '950px';
lunghezza = '470px';
lunghezza2 = '530px';
if (tipo == 3) {
larghezza = '950px';
lunghezza = '470px';
lunghezza2 = '530px';
}
if (tipo == 9) {
larghezza = '950px';
lunghezza = '470px';
lunghezza2 = '530px';
}
unitaLargo = larghezza.substring(larghezza.length - 2, larghezza.length)
unitaLungo = lunghezza.substring(lunghezza.length - 2, lunghezza.length)
var puntiLarghezza = 0;
var puntiLunghezza = 0;
if (unitaLargo != "px") {
//per default è in percentuale
Wlargo = (screen.width * larghezza) / 100;
puntiLarghezza = Wlargo;
Wlargo = Wlargo + "px";
} else {
Wlargo = larghezza
puntiLarghezza = larghezza.substring(0, larghezza.length - 2);
}
if (unitaLungo != "px") {
//per default è in percentuale
Wlungo = (screen.height * lunghezza) / 100;
puntiLunghezza = Wlungo;
Wlungo = Wlungo + "px";
} else {
Wlungo = lunghezza
puntiLunghezza = lunghezza.substring(0, lunghezza.length - 2);
}
var l = (screen.width / 2) - (puntiLarghezza / 2);
var t = (screen.height / 2) - (puntiLunghezza / 2);
DialParam = 'width=' + Wlargo + ',height=' + Wlungo + ',toolbar=no,directories=no,';
DialParam = DialParam + 'toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no,scrollbars=yes,resizable=no';
//alert("pagina: " + pagina);
pag_aperta = window.open(pagina, 'popUp_', DialParam);
pag_aperta.moveTo(l, t);
pag_aperta.focus();
}
因此,如您所见,弹出窗口由window.open()
语句打开,该语句为:
pag_aperta = window.open(pagina, 'popUp_', DialParam);
好的,在此父页面( autorizzaFattura2
)中,还定义了rifiutaSingolo()
JavaScript函数,该函数是:
function rifiutaSingolo() {
alert("Into rifiutaSingolo()");
chiudi();
$('#myRejectNote').css("visibility", "visible");
$('#rifiutaTable').css("visibility", "visible");
$("#dialogReject").dialog("open");
document.getElementById('myRejectNote').focus();
}
OK,在由openDialog2()
函数打开的对话框中,单击此按钮必须执行定义到父页面中的rifiutaSingolo()
函数:
<input style="color: #FFFFFF; font: bold 10px tahoma,arial,helvetica,sans-serif" class="bottone" readonly="readonly" type="button" value="Rifiuta" onclick="parent.rifiutaSingolo()">
我尝试使用parent
以这种方式执行此操作: onclick="parent.rifiutaSingolo()"
但它不起作用,并且rifiutaSingolo()
函数未执行,并且在FireBug
控制台中,我rifiutaSingolo()
此错误消息(当我点击按钮):
TypeError: parent.rifiutaSingolo is not a function
为什么? 我想念什么? 如何解决此问题并正确执行父页面中定义的rifiutaSingolo()
函数?
由我自己解决。
问题是我的对话框不是真正的对话框,而是由window.open创建和显示的
pag_aperta = window.open(pagina, 'popUp_', DialParam);
因此,要执行定义到父页面中的rifiutaSingolo(),我不能使用以下命令:
onclick="parent.rifiutaSingolo()"
因为它与对话框有关,但是我必须使用它:
onclick="window.opener.rifiutaSingolo()"
与窗口有关的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.