За последние 24 часа нас посетили 16694 программиста и 1594 робота. Сейчас ищут 1440 программистов ...

Cross-domain iframe и перезапись .hash

Тема в разделе "JavaScript и AJAX", создана пользователем 118_64, 13 ноя 2017.

Метки:
  1. 118_64

    118_64 Активный пользователь

    С нами с:
    8 янв 2015
    Сообщения:
    84
    Симпатии:
    2
    Есть два домена, работающие на одном движке, оба под моим контролем. Во фрейме одного из них подгружается код с другого.

    Задача - реализовать кроссдоменную передачу данных перезаписью hash в адресной строке домена, загружаемого во фрейме c последующим отслеживанием события onhashchange:

    HTML:
    1. <iframe id="iframe"  src="http://otherdomain.org/iframe.php"></iframe>
    Код (Javascript):
    1.  var iframe = $('#iframe')[0];
    2.  
    3. iframe.onload = function() {
    4.    iframe.contentWindow.location.href = 'http://otherdomain.org/iframe.php/#12345';
    5.    iframe.onload = null;
    6. }
    Содержимое фрейма просто перезагружается, onhashchange не происходит. Прошу подсказать, можно ли вообще избежать перезагрузки и отследить во фрейме изменение hash?
     
    #1 118_64, 13 ноя 2017
    Последнее редактирование: 13 ноя 2017
  2. СтудПом

    СтудПом Новичок

    С нами с:
    8 ноя 2017
    Сообщения:
    17
    Симпатии:
    0
    Деталей не знаю, но должен срабатывать onload того документа у которого меняете хэш. Сответственно, в этом обработчике вы и получаете информацию от другого окна.
     
  3. 118_64

    118_64 Активный пользователь

    С нами с:
    8 янв 2015
    Сообщения:
    84
    Симпатии:
    2
    Он может и срабатывает, но сам фрейм перезагружается, так что это срабатывание мне пользы не принесет. Решил эту задачу "в лоб" через postMessage.
     
  4. СтудПом

    СтудПом Новичок

    С нами с:
    8 ноя 2017
    Сообщения:
    17
    Симпатии:
    0
    -где-то ошибка, браузер не должен запрашивать документ, если меняется только хэш.