window.opener является нулевым в Firefox - PullRequest
3 голосов
/ 28 марта 2012

У меня есть страница, которая открывает всплывающее окно как

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 равен нулю во 2-й строке функции returnselect ()

function returnSelect()
    {
        window.document.forms[0].choice_processType.value ;
        --> window.opener.document.forms[0].pevent.value = 'getprocessName';

Есть идеи, как это преодолеть

Заранее спасибо ...

Ответы [ 3 ]

6 голосов
/ 28 марта 2012

Вы открываете окно из другого домена / субдомена.В этом случае у вас нет доступа к родительскому окну, которое открыло целевое окно, потому что разрешения безопасности не позволяют этого.

Например, если вы открываете страницу site2.com изстраница site1.com целевое окно имеет его открыватель null .

Если вы открываете страницу site2.site.com изстраница site1.site.com также не имеет доступа, потому что это два разных сайта.

Но если у вас есть страница site.com со страницы страницы site.com или страница subdomain.site.com со страницы site.com у вас есть доступ, поскольку разрешения безопасности позволяют это.

Примечание: возможно 'prcsTypeSelectionPopup? Event = prcsTypeSelection' неверно.Измените его на корневой правильный путь без домена, например:

/ prcsTypeSelectionPopup? Event = prcsTypeSelection

3 голосов
/ 30 марта 2012

работает только для "parent.window.opener", а не для "window.opener"

Спасибо, Сергзах, за ваше время

0 голосов
/ 28 марта 2012

Попробуйте отключить следующее расширение Firefox: Расширения Tabbrowser (TBE).

Похоже, что упомянутая проблема при его использовании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...