0
我有一些理解JavaScript的麻煩。JavaScript離線檢測 - 功能不可用
當我發出ajax請求並且用戶沒有連接到主服務器時,將使用函數notify調用Connection類。
因此,當我現在打開該頁面時,禁用我的互聯網,然後單擊按鈕,該按鈕將觸發請求,我收到警報。您再也沒有互聯網連接。
不錯。但是「備份」功能不會被調用。我得到這樣的錯誤:TypeError:this.backup不是一個函數。
那麼我錯過了什麼? JavaScript是客戶端,所以爲什麼我不能執行該功能?
PS:當我執行功能通知時,當我有互聯網它工作。
function Connection() {
this.backup = function() {
var data = [["Backup_Scenario"], ["123"]];
var csv = this.createCSV(data);
this.downloadCSV(csv);
}
this.notify = function() {
alert("You have no internet connection anymore");
this.backup();
}
this.createCSV = function(data) {
var lineArray = [];
data.forEach(function (infoArray, index) {
var line = infoArray.join(",");
lineArray.push(index == 0 ? "data:text/csv;charset=utf-8," + line : line);
});
var csvContent = lineArray.join("\n");
return csvContent;
}
this.downloadCSV = function(csv) {
var encodedUri = encodeURI(csv);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "backup.csv");
document.body.appendChild(link); // Required for FF
link.click();
}
}
工作對我來說罰款:https://jsfiddle.net/d61cwhcq/嘗試通過DevTools和操作系統「脫機」。文件仍然沒有問題下載。 Chrome 60,Windows 10. – yuriy636
它也適用於我:https://jsfiddle.net/pb3bm9jd/ – scuencag
在您的notify()方法中檢查'this' – Thomas