Доброе время суток!
Есть необходимость отображать gif-файл, пока идет загрузка файла. Нашел в проекте работающий (и под IE тоже!) код и попытался приспособить для своих нужд. Мой код не работает под IE (вместо анимации отображается только первый кадр из файла).
Исходный код:
function save_document() {
displayBusy();
getElement("newOrder").submit();
}
<div id="busy" style="display:none;">
<p><img src="/b2b_sng/mimes/images/busy.gif" alt="Подождите, пока загрузятся данные"/></p>
<p>Подождите, пока загрузятся данные</p>
</div>
<div id="page">
<form id="newOrder" method="post" action="/b2b_sng/b2b/createdocument.do">
...
<div id="nodoc-default">
<p><span>Выберите вид операции:</span></p>
<input type="hidden" name="requestSource" value="default"/>
<p class="p1"><span><input type="radio" id="orderType_1" name="orderType" checked="checked" value="q_ZINC" /> Заявка на отгрузку</span></p>
</div>
<div id="buttons">
<ul class="buttons-1">
<li><a href="#" onclick="save_document();" >Создать</a></li>
</ul>
</div>
</form>
</div>
мой код:
function beforeUpload(){
if(document.uploadForm["chosenFile"].value == ""){
alert("Файл не выбран!");
}else{
displayBusy();
getElement("uploadForm").submit();
}
}
<div id="busy" style="display:none;margin-top:5ex;">
<p><img src="/b2b_sng/mimes/images/busy.gif" alt="Подождите, пока загрузятся данные"/></p>
<p style="font-size:100%">Подождите, пока загрузятся данные</p>
</div>
<div id="page">
<form id="uploadForm" name="uploadForm" action="/b2b_sng/b2b/z_uploadfile.do" enctype="multipart/form-data" method="POST">
Файл:<br />
<input type="hidden" id="docGuid" name="docGuid" value="">
<input type="file" name="chosenFile" class="submitDoc" /><br /><br />
</form>
<div id="buttons">
<ul class="buttons-1">
<li><a onclick="beforeUpload();" href="#" >Загрузка</a></li>
<li><a href="#" onclick="self.close();return;" title="Закрыть" >Закрыть</a></li>
</ul>
</div>
</div>
Функция displayBusy():
function displayBusy(hideCont) {
if (!hideCont) {
hideCont = "page";
}
var hideScreen = getElement(hideCont);
var dispScreen = getElement("busy");
if (hideScreen) {
hideScreen.style.display = "none";
dispScreen.style.display = "";
}
}
Исходный код выполняется внутри одного из фреймов, мой код - на отдельной страничке.