2010-08-30 3 views
1

В принципе, я хотел бы подождать, пока откроется диалоговое окно сохранения IE, а затем запустите следующую строку JavaScript.Откуда вы знаете, когда загрузка началась с JavaScript?

Что-то вроде:

`window.open(URL,"_self",...);` 

window.alert("save dialog started");

Можно ли это сделать? Благодаря

Grae

Я пришел с этим:

   var iframe = document.getElementById("dFrameID"); 
       if(iframe.readyState=='complete') 
       window.close(); 

еще ждать и называют это снова.

Кажется хорошо работать.

Это только решение IE. Удачи с FF.

ответ

0

Я не проверял это, но вы можете использовать setTimeout (...), чтобы добраться туда. Я использовал его (только в IE), чтобы подождать, пока диалоговое окно предварительного просмотра печати не будет закрыто.

Трюк должен состоять в том, чтобы ждать в цикле (скажем, пять раз) с достаточным временем между этими пятью циклами, чтобы гарантировать, что диалог сохранения появится. Когда появится диалоговое окно, вся обработка javascript должна замерзнуть. Затем, когда ящик закрыт, javascript снова запустится, и ваш обработчик setTimeout выполнит.

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

+0

... но есть прецедент пользователя, который выбирает Отменить ... – donohoe

+0

@Michael. Затем, надеюсь, он обнаружил, что страница закрыта (из-за отмены) и отвечает соответствующим образом. –

+0

@John - Возможно, я неправильно понимаю, но Cancel будет закрывать окно диалога, а не страницу. SetTimeout по-прежнему будет вызывать предупреждение с неправильной информацией. – donohoe

1

Javascript и браузер не взаимодействуют на этом уровне.

+0

Расскажите мне об этом! lol –

0

Разница в том, что браузеры поддерживают то, что вы указали «Удачи с FF».

Если вы ищете полный вариант из Iframe, размещенного на том же сервере. Вы можете иметь сценарий в документе iframe, который связывается с родителем ... IE parent.yourfunction(); ... между кадрами и iframe нет связи, если домен отличается от него.

+0

Это в том же домене, если это помогает. –

+0

Если я делаю что-то вроде родителя.yourfunction() из iframe, как узнать, когда запускать функцию. Мне придется запускать загрузку в документе iframe, а затем как-то знать, когда загрузка достаточно далеко, и браузер может закрыться. –

+0

Если тип содержимого, который вы загружаете, должен быть проверен и не начинается до события onload с страницы iframe. Тогда вам нужно будет использовать то, что вы можете знать у хоста. Для загрузки нужно использовать php - в то время как загрузка активна, файл нужно будет создать - запрос на этот файл из javascript скажет вам, что загрузка активна. – Wayne

Смежные вопросы