Открыть окно из iframe - PullRequest
       21

Открыть окно из iframe

2 голосов
/ 15 марта 2010

Это ситуация. Я пытаюсь предоставить услугу, где кто-то встраивает iframe на свой сайт с формой в нем. В конце, когда снова приходит запрос ajax, я хочу открыть новое окно с благодарственным письмом. window.open не работает, и я предполагаю, что объект window принадлежит странице, которая его встраивает, а не iframe и будет рассматриваться как межсайтовый скриптинг. Есть ли другой способ сделать это?

У меня была мысль, что я могу создавать ссылки с target = "_ new" в моем iframe, и щелчок по нему откроет другое окно. Может быть, я мог бы создать эту ссылку и "кликнуть" / вызвать ее с помощью JavaScript?

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

Любые дубли?

1 Ответ

7 голосов
/ 15 марта 2010

window.open не работает, и я предполагаю, что объект окна принадлежит странице, которая его встраивает

Я так не думаю. window, как видно из вашего сценария, обычно будет window объектом документа внутри iframe.

Как правило, window.open при завершении XMLHttpRequest будет блокироваться встроенными в браузеры блокировщиками всплывающих окон. Обычно они позволяют открывать новые окна только в прямой реакции на взаимодействие с пользователем (обычно в обработчике события onclick).

Может быть, я мог бы создать эту ссылку и "щелкнуть" / вызвать ее с помощью JavaScript?

Нет, иначе все будут делать это, чтобы обойти блокираторы!

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

...