2010-06-06 5 views
0

Я пытаюсь закодировать это часами и до сих пор не мог этого сделать. Он продолжает говорить мне «Разрешение отказано».Доступ к родительскому окну JavaScript из всплывающих окон

Вот что я пытаюсь выполнить. Это довольно трудно объяснить, пожалуйста, следуйте приведенному ниже примеру.

Например. domain111.com и domain222.com. Когда я нахожусь на домене111.com, я нажимаю на всплывающую ссылку, выворачивает домен domain111.com/popup.html, затем перенаправляет меня на домен222.com. На этом домене222.com он перенаправит пару страниц, прежде чем перенаправить обратно на домен111.com с результатом. Я хочу отправить результат с домена111.com на домен111.com.

Процесс, как показано ниже. Domain111-popup to -> Domain111-redirect -> Domain222-redirect xxx Страницы домена222 затем перенаправляются на -> - Domain111 --- ОТПРАВИТЬ в родительское окно-> Домен11

Вот мой код.

Имя файла 1.hml на domain111.com

<script type="text/javascript"> 
    function IamParent() { 
     alert('I am the parent of this window') 
    } 
    function PopUP() { 
     window.open("http://domain222.com/2.htm", 'ALpop').focus(); 
    } 

</script> 
<body> 
    <a href="#void(0);" onclick="PopUP();" >Click</a> 
</body> 

Имя файла 2.html на domain222.com

<head> 
    <title></title> 
    <meta http-equiv="refresh" content="1;url=http://domain111.com/3.htm?Result=Yes" /> 
</head> 

Имя файла 2.htm на domain111.com

<script type="text/javascript"> 
    parent.IamParent(); //execute the function from the same domain111.com/1.htm 
</script> 

Пожалуйста, не предлагайте AJAX или веб-запрос, потому что он не будет работать с этим случаем.

Спасибо за чтение.

ответ

1

Родительские окна в других доменах недоступны из-за требования ограничения безопасности в машинах JavaScript. Это относится ко всем браузерам. Это межсайтовый скриптинг, который нельзя отключить.

+0

Сначала он всплывал в тот же домен, что и он перенаправлялся в другой домен, и этот домен возвращался в исходный домен. Итак, последний шаг и первый шаг были в одном домене. – user359472

+0

@ user359472: Это промежуточный шаг, который отключает всю цепочку. Теперь механизм безопасности просто позволит это сделать. Я даже не видел разумной работы. В моей компании мы закончили выполнение псевдонима DNS, чтобы второй домен был переименован, чтобы он работал. Это немного рискованно. –

+0

Я действительно не хочу, чтобы родительские окна продолжали проверять статус с помощью Ajax из-за проблемы с производительностью. Умм, я думаю, мне нужно сохранить некоторый идентификатор в базе данных и проверить его, когда мышь снова войдет в страницу. Наверное, это лучшее решение на данный момент. Спасибо, ребята! – user359472

Смежные вопросы