#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 😉