Здравствуйте, я просто недоумеваю над поведением скрипта, у меня есть скрипт скачивания Blob объекта, с ним всё отлично:
var filename = "File01";
var i = "1";
var finalURL = "http://site.com/"+i+".jpeg";
window.URL = window.URL || window.webkitURL; // Take care of vendor prefixes.
var xhr = new XMLHttpRequest();
xhr.open('GET', finalURL, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
var blob = this.response;
var blobSave = new Blob([blob]);
saveAs(blobSave, filename);
}
};
xhr.send();
Теперь мне нужно выполнить этот скрипт, по нажатию на iFrame (в любую область), я использую библиотеку
https://github.com/vincepare/iframeTracker-jquery/... (На основе события blur)
$('iframe').iframeTracker({
blurCallback: function(){
var filename = "File01";
var i = "1";
var finalURL = "http://site.com/"+i+".jpeg";
window.URL = window.URL || window.webkitURL; // Take care of vendor prefixes.
var xhr = new XMLHttpRequest();
xhr.open('GET', finalURL, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
var blob = this.response;
var blobSave = new Blob([blob]);
saveAs(blobSave, filename);
}
};
xhr.send();
}
});
И вот тут начинается просто чтот-то непонятное. Вот в этом месте:
xhr.onload = function(e) {
if (this.status == 200) {
var blob = this.response;
var blobSave = new Blob([blob]);
saveAs(blobSave, filename);
}
};
filename становится undefined, то есть переменная не предаётся в функцию. В Фаерфоксе всё нормально, когда консоль Хрома открыта (! проверено раз 100) тоже всё нормально. Пробовал и в начале документа объявить переменную var filename, что бы она стала глобальной, все ровно она undefined. В чём может быть дело, у кого-нибудь есть мысли?