Программирование > JavaScript & JScript

innerHTML и надпись, которую нужно выводить до окончания загрузки

<< < (2/4) > >>

CGVictor:
andymc Egorsha
Госспади, народ, вы о чем вообще?? Какой аякс, какой флеш??

Логика вот такого уровня -
[off]document.getElementById("tratata").innerHTML="Pls wait";
img = new Image();
img.src=\'big.jpg\';
img.onLoad = function {document.getElementById("tratata").innerHTML=""};[/off]

* Код, ессно, просто от руки написан.

Niksen:
Я изначально немного некорректно задачу сформулировал. У меня есть НЕСКОЛЬКо картинок, не одна. Все это пишется в блок:

document.getElementById ("tratata").innerHTML="..."

onLoad тут не катит - по отношению к блоку он сработывает сразу, как только текст помещается в блок - и не ждет полной загрузки всех картинок. И что делать в таком случае?

CGVictor:
Niksen
Зачем по отношению к блоку? Он тут ни при чем.
Создай сначала (по внешнему событию, я правильно понимаю?) соотв. объекты для предзагрузки, а потом выводи в блок. Как вариант - поставить именованные img-заглушки, а в функции onLoad заменять на нормальное содержимое.

Egorsha:
Niksen

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


<html>
<head>
<script type="text/javascript">
function createRequestObject() {
    var request = null;
    if(!request) try {
        request=new ActiveXObject(\'Msxml2.XMLHTTP\');
    } catch (e){}
    if(!request) try {
        request=new ActiveXObject(\'Microsoft.XMLHTTP\');
    } catch (e){}
    if(!request) try {
        request=new XMLHttpRequest();
    } catch (e){}
    return request;
}
function getAjax(data, div)
{
var request = createRequestObject();
if(!request) return false;
else
    {
     var obj=document.getElementById(div);
     request.open("GET",  data);
     request.onreadystatechange  = function ()
         {
           if  (request.readyState  ==  4  &&  request.status  ==  200)
             {
               obj.innerHTML  =  request.responseText;
              }
          else obj.innerHTML=\'Подождите, идет загрузка...\';

          }
     request.send(null);
     return true;
   }
}
</script>
</head>
<body>
<div id=tratata>
Тут будет картинка и текст
</div>
<button onclick="getAjax(\'test.htm\',\'tratata\');">загрузить HTML</button>

<button onclick="getAjax(\'test.php?t=\'+Math.random(),\'tratata\');">загрузить PHP</button>
</body>
</html>


Файлы test.php, test.htm - одинаковые


<p>blah-blah-blah
<p><img src=test.jpg>
<p>blah-blah-blah

CGVictor:
Egorsha
И вот теперь пойми, что же сделает твой код.
А потом прочитай задачу. Еще раз.

Какое отношение весь твой аякс имеет к задаче предзагрузки самой картинки?

Абзац, б...

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии