2010-01-19 5 views
4

Jquery:Открыть/Сохранить как диалоговое окно

Есть ли способ, чтобы поймать событие, запускаемое, когда браузер открывает Open/Save диалогового окна, как? Open/Save dialog example http://qpack.orcanos.com/helpcenter/Images/openSave.png

Мне нужно что-то сделать, когда откроется диалоговое окно.

+1

, даже если есть, не полагайтесь на это, так как не все браузеры открывают диалоговое окно (хром для одного). – cobbal

ответ

3

Не возможно. Браузер обрабатывает это специально, чтобы веб-хакеры не могли заставить вас загружать вирус, что было бы намного проще для них, если бы это произошло в javascript.

0

Насколько я знаю, нет никакого способа сделать это.

1

A Я знаю, что нет особого способа определить, когда появится это окно. Попробуйте добавить обработчик кликов на кнопку загрузки/значок. Или, как я решил это в своем проекте, я добавил асинхронную логику. когда документ был сгенерирован, я передал «succes» клиенту, а затем JS-код сделал некоторую логику, в которой я нуждался.

+0

Я решил аналогичным образом. 10x много Макс. –

1

Не знаю, что я знаю.

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

Учитывая якорь:

<a id="MyLink" href="MyDoc.doc"> 

Простой щелчок handkler будет перехватывать это событие, прежде чем выше окно выскакивает

$(document).ready(function(){ 
    $("#MyLink").click(function() { 
     alert($(this).length); 
    }); 
}); 
0

Всегда тот же тип файла, который вы проверяете для? Если да, то вы могли бы сделать что-то вроде

$("a").click(function(e){ 
    var extension = $(this).attr("href").substr($(this).attr("src").lastIndexOf(".")); 
    if ((extension && /^(zip|vbd)$/.test(extension))){ 
     alert("Hi now you can do whatever you needed to do!"); 
    } 
}); 

Примечания нет e.preventDefault(), так как вы все еще хотите приглашение прийти я предполагаю?

File extension check snippet

+0

Это всегда одно и то же расширение файла (файл pdf), но файл динамически генерируется, а href инициализируется с помощью контроллера сервера, который создает файл. Я нашел работу вокруг, так как ie6 имеет странное поведение с функцией jQuery submit(). Если функция, которая называется $ ("myForm"). Submit() запускает и завершает свое выполнение, подача прерывается браузером. Asap Я выложу тестовый файл на форуме jQuery. Большое спасибо Макс. –

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