Я пытаюсь изменить размер iframe после загрузки содержимого. Страница (загружаемая в iframe) имеет некоторые элементы управления, которые заставляют ее загружать дополнительную информацию в нижнюю часть страницы, и это делается с помощью метода $ .ajax() JQuery.Изменение размера кадра при завершении Ajax
Я попытался использовать $(document).ajaxComplete()
, но это заканчивается тем, что регистрируется перед событием успеха $ .ajax(). То, что я хочу сделать, это зарегистрировать событие после события успеха.
Например:
<script type='text/javascript'>
$(document).ready(function(){
resizeIframe();
$(document).ajaxComplete("resizeIframe");
$(document).load("resizeIframe");
});
function resizeIframe()
{
$(window).parent().height($("body").height());
$(window).scrollTop(0);
}
</script>
Это работает должным образом на статически нагруженных страниц. Однако, если у меня есть что-то вроде этого:
<script type='text/javascript'>
$("someObject").on('click', function(){
$.ajax({
type: 'post',
url: 'someurl.php',
success: function(data)
{
$("body").append(data);
}
});
});
</script>
того resizeIframe будет вызываться перед функцией .ajax успеха (это означает, что дом не содержит эти аддитивные элементы, и, таким образом, эта страница является неправильной высотой I. хотел бы избежать добавления resizeIframe
к каждому АЯКС вызову я делаю, есть событие, я могу использовать, чтобы решить эту проблему
Update
Я попытался это:
$(document).ready(function(){
resizeIframe();
$(document).load(function(){ resizeIframe();});
$(document).ajaxComplete(function(){
setTimeout(resizeIframe, 0);
});
});
и, похоже, работает в Firefox 21. Однако он не работает в IE10 (и я должен быть обратно совместим с IE8).
Не работает ли первая функция успеха, которая определяется первым, что означает, что метод resizeIframe будет работать до элемента $ .ajax Success? – Mike
Я только что протестировал, и метод $ (document) .ajaxSuccess() запускается перед элементом успеха в методе $ .ajax – Mike
Ahh yep, просто попробовал. Другая идея, создать свой собственный глобальный обработчик и связать его в локальном событии успеха? – tymeJV