Принудительный диалог «Сохранить как» с помощью jQuery GET - PullRequest
2 голосов
/ 15 июля 2011

Я вызываю jQuery «GET» для кода файла test.php, приведенного ниже.

Я пытаюсь заставить скрипт вызвать диалоговое окно «Сохранить как» в результирующем файле test.ini, чтобы разрешить его локальное сохранение. Тем не менее, хотя я могу вернуть результат обратно в jQuery, я не могу открыть диалоговое окно «Сохранить как».

Обновление: благодаря приведенным ниже решениям я просто изменил свой $ .get на window.location.replace.

$('#test').click(
    function()
    {
        //$.get('<?php echo get_bloginfo('template_directory') ?>/test.php');
        window.location.replace("<?php echo get_bloginfo('template_directory') ?>/test.php");

    }
);

Ответы [ 3 ]

8 голосов
/ 15 июля 2011

Вы не можете получить ajax-запрос для отображения диалога «Сохранить как», но вы МОЖЕТЕ сделать, вставив скрытый элемент iframe на страницу, а затем установить источник этого iframe на URL, который вы хотите, чтобы пользователь скачать. Вуаля, это твой Сохранить как.

Вот пример копирования и вставки:

$('a#linky').click(function(){
  var iframe = document.createElement("iframe"); 
  iframe.src = 'http://example.com/branding.zip'; 
  iframe.style.display = "none"; 
  document.body.appendChild(iframe);
  return false;
});
3 голосов
/ 15 июля 2011

Вам не нужен AJAX для этого.Просто перейдите к рассматриваемому php, и в этом php используйте

header('Content-disposition: attachment;filename=whatever.dat');

. Появится диалоговое окно «Сохранить как», и вы останетесь на исходной странице.

1 голос
/ 15 июля 2011

AJAX-запрос не может вызвать диалог загрузки файла.Попробуйте вместо этого открыть цель загрузки в новом окне.

...