Изменение адреса открывающего окна в IE8

Из дочернего всплывающего окна (открытого с помощью window.open) я пытаюсь изменить URL-адрес окна, которое открыло меня, например.

window.opener.location.href = 'http://www.google.com';

Во всех браузерах это прекрасно работает, за исключением IE8 (и я несколько уверен, что это работало в предыдущем IE8. Возможно, это убивает обновление безопасности).

В IE8 происходит то, что строка выше обрабатывается как запрос на открытие НОВОГО окна с адресом, а исходное окно открытия остается прежним. И, поскольку я не помещаю эту строку в событие onclick, это рассматривается как всплывающее окно.

Итак, как мне это сделать в IE8? Как изменить местоположение опенера?


person giltayar    schedule 22.10.2009    source источник


Ответы (3)


Похоже, это просто невозможно. Я не получил ответа ни от кого, и все мои исследования показали, что это просто еще один способ, которым MS добавила блокировку всплывающих окон.

person giltayar    schedule 02.11.2009

попробуйте переместить действие в родительское окно, например:

//parent.htm
function changeUrl(url) {
  location.href = url;
  window.reload();
}

window.open("child.htm");

.....

//child.htm
window.opener.changeUrl(url);
person rivers    schedule 02.12.2010

попробуйте это: в окне открытия определите функцию с именем goto ;-)

function goto(url){ window.location.href = url; }

теперь из дочернего окна вызовите window.opener.goto(url);

person Tzury Bar Yochay    schedule 22.10.2009
comment
К сожалению, у меня нет контроля над окном открытия (это bestbuy, com и другие розничные продавцы), и даже если бы я имел, они находятся в другом домене, чем я, поэтому я считаю, что не могу вызвать какой-либо метод в окне открытия. - person giltayar; 22.10.2009