2009-10-22 3 views
4

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

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

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

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

Как я могу это сделать в IE8? Как изменить место открытия?

ответ

0

попробовать это: на окне открывающего определить функцию под названием Гото ;-)

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

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

+0

К сожалению, я не имею никакого контроля над окном ножа (это BestBuy, ком и другими розничные торговцы), и даже если бы я был, они находятся в другой домен, чем я, поэтому я считаю, что не могу вызвать какой-либо метод в открывающемся окне. – giltayar

1

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

+2

Тогда это просто глупо. – Faruz

1

попытаться переместить действие в родительское окно, как это:

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

window.open("child.htm"); 

..... 

//child.htm 
window.opener.changeUrl(url); 
Смежные вопросы