这与我的上一个问题相似,但问题不同。我为我的所有 javascript 函数使用单独的 javascript 文件。该文件由我的主窗口调用,也由我的子窗口在单独的实例中调用。我的代码适用于除 IE 9 和 10 之外的所有浏览器。我没有测试过早期版本的 IE。
IE 说有问题的行是window.opener.savetoparent($targetval);
我以前的代码是opener.savetoparent($targetval);
,在此之前我只是直接从孩子对父母进行了更改。我还进入了 IE 并按照另一篇文章中的建议启用了保护模式,但行为没有改变。 Savetoparent()
对孩子和父母都可用,所以我必须用 opener 调用它才能在父母中运行。
我得到的错误是:Unable to get property 'savetoparent' of undefined or null reference.
这是代码:
function saveandclose($wintype, $propid) {
switch($wintype) {
case 'ccdetail':
var $targetval = $('#cc-total').val();
var $fieldname = 'closingcoststotal';
break;
}
window.opener.savetoparent($targetval);
closewindow();
}
对父函数的安全是:
function savetoparent($targetval) {
$('#' + $parentloc).val($targetval);
var $name = $('#' + $parentloc).attr("name");
var $rawtargetval = jsstrtonum($targetval);
processrvsave($propertyid, $name, $rawtargetval);
calcrvtotals();
}
您能对此有所了解的任何信息将不胜感激。
窗口是这样启动的
if(window.showModalDialog) {
window.showModalDialog($childname + '.php?ploc=' + $parentloc + '&propid=' + $propid, '', 'dialogWidth: ' + $winwidth + 'px; dialogHeight: ' + $winheight + 'px;')
}
else {
window.open($childname + '.php?ploc=' + $parentloc + '&propid=' + $propid, '', 'width=' + $winwidth + ', height=' + $winheight + ', modal=yes');
}