Всплывающее окно кросс-домена с возвращаемым значением - PullRequest
3 голосов
/ 18 сентября 2009

Это настройка:

У меня есть два сайта на двух разных доменах:

  • www.website1.com
  • www.someotherwebsite.com

Вот что я хочу сделать:

  1. Когда пользователь набирает www.website1.com и нажимает на ссылку, я хочу, чтобы всплывающее окно показывало www.someotherwebsite.com.

  2. Когда пользователь нажимает кнопку во всплывающем окне (показывает www.someotherwebsite.com), я хочу, чтобы это окно закрылось и вернулось значение.

  3. Я хочу, чтобы значение, возвращаемое из всплывающего окна, было помещено (в div, или в вызов javascript, или в другое место, такое как заполнение поля формы) в www.website1.com.

Надеюсь, это имеет смысл. Мне нужно использовать только HTML и Javascript без внешних библиотек. Он также должен работать в текущих основных браузерах (т. Е. Не в HTML5).

Заранее благодарю за помощь.

Ответы [ 2 ]

3 голосов
/ 18 сентября 2009

Хорошо, если вы используете iframe во всплывающем окне [в наши дни я бы избегал всплывающих окон, таких как чума из-за блокировщиков всплывающих окон]

С помощью iframe вы можете совершать междоменные звонки

Почему бы вам просто не разработать веб-сервис от А до Б и не позвонить ему из А? Кажется, намного чище, чем искать небольшие трещины в браузерах, чтобы обойти безопасность.

2 голосов
/ 18 сентября 2009

Вы можете опубликовать значение во всплывающем окне с www.someotherwebsite.com обратно на специальную страницу www.website1.com. Теперь вы вернулись в исходный домен, эта страница принимает значение GET и записывает его в некоторый JavaScript. Затем JavaScript обновляет значение где-то в окне открывания, используя opener.document.getElementById, или вызывает функцию в открывателе с помощью чего-то вроде opener.document.doSomething (val); который обрабатывает ответ.

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

...