powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / необходимо разблокировать кнопку, как только страница подгрузилась
25 сообщений из 53, страница 2 из 3
необходимо разблокировать кнопку, как только страница подгрузилась
    #35398485
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AjaxMan AntonariyВсе так, но события не дождешься. Потому что ты в ифрейм хочешь загрузить файл, а не html-документ. C файлами dom не работает.
ну попробовал я подсунуть файл, а один фиг неработает, да и какая разница что там будит html файл или rar!
я думаю что никакой, но почему обработчик неприкручиваеться?
Меньше думай, больше слушай.
Большая разница! Iframe это IHTMLWindow (в терминах IE), то есть окно, призванное рендерить html-разметку. Движок броузера анализирует заголовок данных, полученных с урла, видит, что там application/octet-stream, а не text/html и поэтому предлагает сохранить его на диск, а не пытается рендерить. При сохранении файлов до dom-механизмов дело даже не доходит. И это разумно и правильно. Я бы не хотел, чтобы всякие быдлоскрипты лили мне на винт свое барахло без моего полного контроля.

В общем и целом, проконтролировать загрузку файла можно только через ajax в IE с уровнем безопасности, втоптанным в линолеум.
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35398511
AjaxMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy AjaxMan AntonariyВсе так, но события не дождешься. Потому что ты в ифрейм хочешь загрузить файл, а не html-документ. C файлами dom не работает.
ну попробовал я подсунуть файл, а один фиг неработает, да и какая разница что там будит html файл или rar!
я думаю что никакой, но почему обработчик неприкручиваеться?
Меньше думай, больше слушай.
Большая разница! Iframe это IHTMLWindow (в терминах IE), то есть окно, призванное рендерить html-разметку. Движок броузера анализирует заголовок данных, полученных с урла, видит, что там application/octet-stream, а не text/html и поэтому предлагает сохранить его на диск, а не пытается рендерить. При сохранении файлов до dom-механизмов дело даже не доходит. И это разумно и правильно. Я бы не хотел, чтобы всякие быдлоскрипты лили мне на винт свое барахло без моего полного контроля.

В общем и целом, проконтролировать загрузку файла можно только через ajax в IE с уровнем безопасности, втоптанным в линолеум.
Так мне и надо, чтобы мне предложили его сохранить на диск, нет, он его рэндэрит(((
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35398546
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AjaxMan
файл формируеться долго

IMHO, проблема тока в том, что если не за'disable'ть кнопоцку, то дюжжечки неуемный и шустрый юзвер потыцяет в нее несколько раз, соответственно запустив ышо пару-тройку раз формирование одного и того же... Попробуйте покрутить это
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35398570
AjaxMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft
AjaxMan
файл формируеться долго

IMHO, проблема тока в том, что если не за'disable'ть кнопоцку, то дюжжечки неуемный и шустрый юзвер потыцяет в нее несколько раз, соответственно запустив ышо пару-тройку раз формирование одного и того же... Попробуйте покрутить это
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
это было самое первое что я сделал, но проблема в том, чтопо окончанию загрузки, все кнопки так и остаються неактывными(((
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35398571
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ общем и целом, проконтролировать загрузку файла можно только через ajax в IE с уровнем безопасности, втоптанным в линолеум.Хотя есть второй вариант для IE. Засунуть webbrowser в <object>, прицепить обработчик к его событию DownloadComplete и сделать webbrowser.navigate('file.zip'). Тогда все будет и в рамках безопасности, и в рамках DOM, и диалог сохранения в полный рост.
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35398579
AjaxMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy авторВ общем и целом, проконтролировать загрузку файла можно только через ajax в IE с уровнем безопасности, втоптанным в линолеум.Хотя есть второй вариант для IE. Засунуть webbrowser в <object>, прицепить обработчик к его событию DownloadComplete и сделать webbrowser.navigate('file.zip'). Тогда все будет и в рамках безопасности, и в рамках DOM, и диалог сохранения в полный рост.
Немогли бы вы подробнее рассказать?
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35398604
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AjaxMan
проблема в том, чтопо окончанию загрузки, все кнопки так и остаються неактывными(((

А начало формирования? Так сказать, инициировали сервер на телодвижения по формированию как: AJAX'ом или серверным обработчиком click'а? Сама страница - чистый html шо ли?
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35398624
AjaxMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том что zip формирует другой файл..., если я вас правильно понял...
да вы сами попробуйте создать форму, и Action фсделать на файл который будит возвращать zip...
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35398632
AjaxMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft
Сама страница - чистый html шо ли?

Да
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35398683
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как-то так, но почему-то не работает. Событие срабатывает сразу, не дожидаясь, пока Webbrowser скачает файл.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<html>
<head>
<script language="JavaScript">
function CreateWB() {
	
  var webBrowser = '<object ID="WebBrowser1" WIDTH=1 HEIGHT=1 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>';
  document.body.insertAdjacentHTML('beforeEnd', webBrowser);
  WebBrowser1.DownloadComplete=OnComplete();
  WebBrowser1.Navigate('http://localhost/file.zip'); //путь должен быть абсолютным
}

function OnComplete(){
btn.disabled=false;
alert('sdf');
}

</script>
</head>
<body>
  <input type=button onclick="this.disabled=true;CreateWB();" id=btn>
</body>
</html>
Можно попробовать через SetTimeout проверять WebBrowser1.ReadyState, когда будет равно 4 — файл скачался. Но что-то мне кажется, что и в этом случае 4 будет сразу.
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35398743
AjaxMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще пытался вот так, вроде бы работатет, но незнаю как заголовок указать правитьно...

Код: plaintext
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>
    <script type="text/javascript">

    var http_request = false;
	var oStr = false;

function Open()
{
	if(http_request.readyState== 4  && http_request.status== 200 )
	{

		document.getElementById("act").disabled= 0 ;

		var myiFrame = document.createElement('iframe');
		document.body.appendChild(myiFrame);
		myiFrame.id="myif";
		myiFrame.setAttribute('height','100px');
		myiFrame.setAttribute('width','100px');
		alert(http_request.responseBody);
		myiFrame.document.write("Content-Type: application/zip " + http_request.responseBody);		
		//myiFrame.document.write("hello");		

	}
}

    function LoadText(obj)
    {
        //document.getElementById("MyDiv").style.color = "#ccc";
        //document.getElementById("MyDiv").innerHTML = "Загрузка ...";
	obj.disabled= 1 ;
        
        if (window.XMLHttpRequest)
            http_request = new XMLHttpRequest(); 
        else if (window.ActiveXObject){ 
            http_request = new ActiveXObject("Microsoft.XMLHTTP");}
        if(!http_request){ 
            document.getElementById("MyDiv").style.color = "#900";
            document.getElementById("MyDiv").innerText = "Не могу создать экзмепляр класса XMLHttpRequest";
            return; }  
               
        http_request.onreadystatechange = Open;
	http_request.open("get", "http://localhost:8080/downloads.php", true);            
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(null); 




        }
    
    </script>
</head>
<body>
<div id="MyDiv" style="border:1px #ccc solid; width:300px; height: 15px; text-align:center">
	<input name="act" id="act" type="button" value="Получить данные" onClick="LoadText(this)">
</div>
</body>
</html>
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35399116
AjaxMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может подскажите другой способ решения этой проблемы?
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35399181
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AjaxManmyiFrame.document.write("Content-Type: application/zip " + http_request.responseBody);Н-да. Глядя на этот код, остается пожелать обширного RTFM, а к верстке не приближаться до окончания этого процесса. Этак с полгодика.
Во-первых, заголовки обрабатывает броузер, на этом основании он решает, что делать с ответом сервера. Во-вторых, можешь полюбоваться на результат этого кода, если откроешь zip-архив в блокноте или ворде. В-третьих document.write принимает текст, а responseBody возвращает байтовый массив, здесь был бы нужен responseText, если бы был смысл.
AjaxManМожет подскажите другой способ решения этой проблемы?Забить. Теперь с уверенностью могу сказать, что это единственное 100% рабочее решение данной проблемы.
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35400619
Ghirik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Событие onload IE не понимает в нашем с вами представлении. За то, у IE есть очень хороший метод, и проверка вроде if (object.readyState == "complete") может дать Вам желаемый результат. На iframe не проверял, но должно работать.
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35400623
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для архивов rar, загружаемых это не прокатит. Событие onload в iframe сработаеn только при загрузке основной страницы. После этого readyState будет complete и не измениться сколько бы ресурсов, отличных от HTML-документов, то есть rar, zip и т.п Вы не загружали.
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35400627
Ghirik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВы не загружали.

Ага.... Просто IE любит этот метод, вот и подумалось... :-)
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35403443
AjaxMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
<html>
<head><title> 1 </title></head>
<script type="text/javascript">

function loading(obj){
	obj.disabled= 1 ;

	var myiFrame = document.createElement('iframe');
	document.body.appendChild(myiFrame);
	myiFrame.id="myif";
	myiFrame.setAttribute('height','0px');
	myiFrame.setAttribute('width','0px');

	myiFrame.src='7-1.html';

	if (myiFrame.addEventListener) {
		myiFrame.addEventListener('load', load_iframe, false);
	} else if (myiFrame.attachEvent) {
		var r = myiFrame.attachEvent("onload", load_iframe);
	} else {
		load_iframe();
	}
}

function load_iframe(){
alert("загружено!");
	act.disabled= 0 ;
}

</script>
<body>
<form>

<input name="act" id="act" type="button" value="Получить данные" onClick="loading(this);">

</form>
</body>
</html>

подскажите почему данный код работает только в FireFox, а в IE неработает(((
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35403638
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из-за addEventListener .
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35403663
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовать вместо:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
if (myiFrame.addEventListener) {
		myiFrame.addEventListener('load', load_iframe, false);
	} else if (myiFrame.attachEvent) {
		var r = myiFrame.attachEvent("onload", load_iframe);
	} else {
		load_iframe();
	}
просто написать:
Код: plaintext
1.
myiFrame.onload= load_iframe;
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35403677
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Попробуйте src присваивать после навешивания обработчика
2. тынць
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35403685
AjaxMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeПопробовать вместо:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
if (myiFrame.addEventListener) {
		myiFrame.addEventListener('load', load_iframe, false);
	} else if (myiFrame.attachEvent) {
		var r = myiFrame.attachEvent("onload", load_iframe);
	} else {
		load_iframe();
	}
просто написать:
Код: plaintext
1.
myiFrame.onload= load_iframe;

нет, опять работает только в FF!(((
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35403769
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
29.
30.
31.
32.
<html>
	<head>
		<title>Test Dynamic IFrame (MainForm)</title>
		<script type="text/javascript">
<!--
function DoIt()
{
	var
		frm;

	frm=document.createElement("iframe");
	if("attachEvent" in frm)
		frm.attachEvent("onload",AL);
	else if("addEventListener" in frm)
		frm.addEventListener("load",AL,false);
	else
		frm.onload=AL;
	frm.setAttribute("src","IFrame.html");
	document.body.appendChild(frm);
}

function AL()
{
	alert("AL");
}
// -->
		</script>
	</head>
	<body>
		<input type="button" id="btnDoIt" name="btnDoIt" value="DoIt!" onclick="DoIt()">
	</body>
</html>
У меня работает и в FF и в осле...
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35403887
AjaxMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том что у меня в файле который грузиться в frame следующий текст

Код: plaintext
1.
2.
3.
4.
5.
<html>
<body>
<iframe src="downloads.php"></iframe>
</body>
</html>

downloads.php возвращает архив!

почему же тогда FF понимает а IE нет!((((
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35403916
AjaxMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как через readyState делать!

есть еще вариант сделать через setTimeout и statusbar!
...
Рейтинг: 0 / 0
необходимо разблокировать кнопку, как только страница подгрузилась
    #35404072
AjaxMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Столкнулся с проблемой, функция которую вызывает setInterval
в ней неотрабатывает это условие, alert(window.status) тоже пусто, и теинтервал уходит в бесконечность(((

Код: plaintext
1.
2.
3.
4.
 if (window.status == 'Готово'){
          clearInterval();
          load_iframe();
     }
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / необходимо разблокировать кнопку, как только страница подгрузилась
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]