получить доступ к междоменному iframe history.length или получить его текст в переменной родительского документа - PullRequest
0 голосов
/ 01 октября 2009

У меня есть всплывающее окно обратной связи (TickBox), которое загружает междоменный домен iFrame и при отправке формы загружает страницу "спасибо за ....".

Я хочу, чтобы, когда пользователь отправлял кнопку обратной связи, он скрывал оболочку iFrame.

Я знаю, что из-за ограничений безопасности "той же политики происхождения" вы не можете получить фактическое местоположение iFrame при его изменении.

Мой вопрос, могу ли я как-нибудь получить историю через history.length, чтобы проверить, является ли это новое местоположение?

Или, возможно, прочитайте его содержимое и найдите текст новой страницы (например, «спасибо за») и скройте его оболочку

$("iframe").load(function(){
    var iframeSrc = $(this).contents()[0].location.hash; /*or history.length */
    var isSubmitedUrl = /Home_Landing/
    var testUrl = iframeSrc.search(isSubmitedUrl)

  if(testUrl >= 0){    /*or if(history.length >= 0)*/
    $(".iframeWrap").hide();
  }

 })

1 Ответ

2 голосов
/ 01 октября 2009

Политика Тот же источник не только ограничивает доступ к местоположению iframe, но и всему объекту window для этого iframe.

То есть, если вы не можете получить доступ к свойству iframe window, вы не сможете получить доступ к свойству iframe window.history.

Вы даже не можете прочитать свойство src в iframe в своем собственном документе, так как оно не отражает изменений в расположении iframe.

Лучшее, что я могу придумать, это передать URL-адрес iframe через прокси на вашем собственном сервере, и в этом случае вы сможете по крайней мере получить доступ к его DOM и прослушать "onsubmit" встроенного form чтобы скрыть свою обертку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...