Как мне изменить размер IFRAME?

#javascript #iframe

#javascript #iframe

Вопрос:

Мне нужно изменить размер междоменного iframe, чтобы он соответствовал содержимому. Итак, в parent.html Я пишу это:

 $(function () {
    $('iframe').load(function () {
        var h = null;
        if (!h) {
            if (location.hash.match(/^#h(d )/)) {
                h = RegExp.$1;
                $(this).css({
                    'height': h   'px'
                })
                location.hash = ''
            }

        }
    })
})
  

и в child.html я пишу это:

 $(function () {
    h = 0
    h = $(document).height()
    console.log(h)
    if (top != self) {
        top.location.replace("http://parentdomain.com/#h"   h);
    }
})
  

он отлично работает при загрузке один раз, но если я нажму ссылку в iframe, и переменная content changes h по-прежнему будет иметь первое значение. Если я открою child.html в новом окне var h , оно изменится, но не в iframe.

Возможно ли это исправить?

Ответ №1:

Действие изменения размера на самом деле больше не вызывается.

Если вы нажмете ссылку в iFrame, вы должны вызвать функцию для родительского элемента или просмотреть событие haschange, которое поддерживается только в более поздних браузерах.

Комментарии:

1. Я не очень разбираюсь в jQuery, но мы делали это несколько раз с событием onload, привязанным к iframe 🙂 так что оно соответствует своему содержимому при каждом изменении содержимого (за исключением вызовов ajax 😉