#javascript #html #jquery #ajax
#javascript #HTML #jquery #ajax
Вопрос:
Я пытаюсь загрузить файл на той же странице, используя html, возвращенный из вызова ajax. Вызов ajax выглядит следующим образом:
$.ajax({
url: './xyz.cshtml',
type: "POST",
data: {
//some validation and data to send to server.
},
success: function (data, status, xhr) {
//alert('status: ' status ', data: ' data);
var result = $(data);
console.log(result);
result.appendTo("body");
}
});
HTML выглядит следующим образом:
<iframe width='1' height='1' frameborder='0' src='http://server//some_folder/some.xlsm'></iframe> <script>document.body.style.cursor = 'default';</script>
В принципе, я хочу разобрать этот iframe, а затем запустить его на той же странице. При запуске кода в iframe файл будет загружен. Итак, мне нужна помощь в разборе этого html на страницу и последующем запуске этого блока кода.
Заранее спасибо.
Комментарии:
1. Покажите, что возвращается из вашего вызова ajax. Показать некоторые визуальные. Что-то похожее на то, что вы хотите сделать. Трудно понять, что вы говорите.
2. @ChiragArora это возвращенный HTML:
<iframe width='1' height='1' frameborder='0' src='http://server//some_folder/some.xlsm'></iframe> <script>document.body.style.cursor = 'default';</script>
теперь я хочу использовать этот HTML для загрузки файла по ссылке iframe.3. @maverick6912 если я вас правильно понял, вы хотите иметь возможность просто загрузить файл с URL-адреса iframe, который вы получаете из этого ответа ajax
4. @swadhwa да, но загрузите его на той же странице.
Ответ №1:
Хорошо, итак, сначала вы хотите получить этот src из iframe, затем создать привязанный элемент dom и просто щелкнуть по нему. Я думаю, это должно сработать
var ajaxResponse = "<iframe width='1' height='1' frameborder='0' src='http://server//some_folder/some.xlsm'></iframe> <script>document.body.style.cursor = 'default';</script>";
// this function will simply download the file
function download(filename, dataurl) {
var a = document.createElement("a");
a.href = dataurl;
a.setAttribute("download", filename);
a.click();
}
var regex = /<iframe.*?src='(.*?)'/;
var src = regex.exec(ajaxResponse)[1]; // src from that iframe
download("SomeFileName.xmlsm", src);