Можно ли поместить изображение загрузчика в iframe при загрузке его содержимого? - PullRequest
0 голосов
/ 22 марта 2012

Я работаю на странице содержимого iframe на вкладке Facebook, и, так как отображение содержимого iframe моего сайта занимает несколько секунд, мне интересно, могу ли я разместить загрузочный gif внутри iframe, чтобы показать первым (возможно, фоновое изображение тела) при загрузке остального содержимого.

Я вижу, что iframe обычно поставляется со всеми изображениями. Поэтому мне интересно, есть ли способ сделать это, или содержимое iframe загружается и отображается все вместе.

Я попробовал изображение как фон тела, и оно не сработало. Оба пришли вместе.

Ответы [ 3 ]

2 голосов
/ 22 марта 2012

Вы не можете изменять содержимое iframe из другого домена.

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

Вот пример: http://jsfiddle.net/jfriend00/DajS4


Если ваш код находится в iframe и вы хотитечто-то, отображаемое до того, как ваша страница загружается в iframe, и вы не контролируете родителя, тогда делать нечего.Вы ничего не можете сделать динамически, пока ваш код не будет загружен, и к тому времени страница уже начнет показываться.

Все, что вы можете сделать, это сделать что-то на вашей странице, загружаться очень, очень быстро (возможно, какмаленькое изображение в первом теге страницы), которое должно показываться одним из первых, а затем, когда ваша страница успешно завершает загрузку, вы можете скрыть это маленькое изображение.Кроме быстрого показа чего-либо, вы ничего не можете сделать, пока не загрузите, поэтому вы не можете ничего показать перед загрузкой.Это должно быть родительское окно, которое создало вас, что-то делало раньше.

0 голосов
/ 22 марта 2012

Вы можете использовать AJAX для загрузки вашей страницы.

<div id="loading">loading..</div>
<div id="content" style="display:none"></div>

$(function() {
    $('#content').load('http://url', function() {
        $('#loading').hide();
        $(this).show();
    }
});

примечание: расположение всего вашего javascript должно быть внизу страницы, чтобы улучшить скорость загрузки.

0 голосов
/ 22 марта 2012

Умм,

Я понимаю, чего вы пытаетесь достичь.но единственный способ, которым я знаю, чтобы достичь этого, это использовать ajax для загрузки всего вашего контента.

Установить функцию ajax для запуска при загрузке страницы.И в теле страницы разместите один из этих gif-загрузчиков ..

надеюсь, вы понимаете, что я пытаюсь сказать!

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