我有一个打开弹出窗口的页面
openWindow(top, 'prcsTypeSelectionPopup?event=prcsTypeSelection', 'lovWindow', {width:750, height:550}, true, 'dialog', pathCallBack);
并且弹出窗口具有以下代码
function returnSelect()
{
window.document.forms[0].choice_processType.value ;
window.opener.document.forms[0].pevent.value = 'getprocessName';
window.opener.document.forms[0].processName.value='';
for (var i=0; i < document.forms[0].elements.length; i++)
{
if (document.forms[0].elements[i].checked)
{
window.opener.document.forms[0].processName.value=document.forms[0].elements[i].value;
break;
}
}
if(window.opener.document.forms[0].processName.value=='') {
window.opener.document.forms[0].lovProcessType.value = '';
window.opener.document.forms[0].pevent.value = '';
}
window.opener.document.forms[0].submit();
closeConn();
}
function closeConn()
{
self.close();
}
但是当页面在firefox中加载时,我得到错误 window.opener在returnselect()函数的第二行为空
function returnSelect()
{
window.document.forms[0].choice_processType.value ;
--> window.opener.document.forms[0].pevent.value = 'getprocessName';
任何想法如何克服这个
提前致谢...
答案 0 :(得分:6)
您从另一个域/子域打开一个窗口。在这种情况下,您无权访问打开目标窗口的父窗口,因为安全权限不允许这样做。
例如,如果您从 site1.com 的页面打开 site2.com 页面,则目标窗口的开启者 null 。
如果您从 site1.site.com 的页面打开 site2.site.com 页面,则也无法访问,因为这是两个不同的网站。
但是,如果您是 site.com 页面中的 site.com 页面或 subdomain.site.com 页面的页面 site.com 您具有访问权限,因为安全权限允许。
注意:也许'prcsTypeSelectionPopup?event = prcsTypeSelection'不正确。将其更改为没有域的根正确路径,例如:
/ prcsTypeSelectionPopup?事件= prcsTypeSelection
答案 1 :(得分:3)
它仅适用于“parent.window.opener”而不适用于“window.opener”
感谢Sergzach的时间
答案 2 :(得分:0)
尝试禁用下一个Firefox扩展程序: 选项卡浏览器扩展(THE)。使用它时似乎存在上述问题。