我正在使用FileReader API加載文本文件。在此過程中,我將內容放入<pre>
標籤fileDisplayArea.innerText = reader.result;
。稍後,我想在播放視頻期間觸發的duringPlayback功能中使用此內容。 video.ontimeupdate = function() { duringPlayback() };
設置和使用變量(JavaScript)
我不想一次又一次地將載入的文件的內容放在video.ontimeupdate函數中,所以我想我只是加載reader.result(或fileDisplayArea.innerText )內容轉換爲全局變量,我可以稍後在video.ontimeupdate函數中對內容執行所需操作。但我似乎無法設置變量,以便它可以在video.ontimeupdate函數中使用。我在嚴格模式下運行,但我已經評論說,它仍然不起作用。
如何將reader.result內容設置爲可在video.ontimeupdate函數內使用的變量?我很難過。 (我想在嚴格模式下,如果可能的話跑。)提前
感謝, 安德魯
// Assign an ontimeupdate event to the video element, and execute a function if the current playback position has changed
video.ontimeupdate = function() { duringPlayback() };
function duringPlayback() {
document.getElementById("speed").innerHTML = (Math.round(video.playbackRate * 100)/100).toFixed(2);
// I need to use the var hostFile (reader.result) contents here. ###########
}
// Load Tab Delimted File
var fileInput = document.getElementById('fileInput');
fileInput.addEventListener('change', function (e) {
var file = fileInput.files[0];
var textType = /text.*/;
if (file.type.match(textType)) {
var reader = new FileReader();
reader.onload = function (e) {
// Entire file
fileDisplayArea.innerText = reader.result;
var hostFile = reader.result; //###########
}
reader.readAsText(file);
//doIt(); //Normally doIt would be called from another function
} else {
fileDisplayArea.innerText = "File not supported!"
}
});
是的,我試過了。 (對不起,我沒有在我的文章中捕獲該行。)我以前有var hostFile =「」; (我想我必須給它一個初始值),但已經改變它只是var hostFile;現在,控制檯並沒有返回「未定義」。我仍然難倒。看來這應該是如此簡單! – Andrew
聽起來像'duringPlayback'在'hostFile'被設置爲讀者結果之前被調用。你可能想要設置一個plunker/jsfiddle/codepen來更好地說明你的問題 –
Doh!我剛剛聞到了我自己的大腦屁。我正在逐行比較你的代碼和我的代碼。在reader.onload函數中,我有「var hostFile = reader.result」,而不是「hostFile = reader.result」。當然,我刪除了「var」,現在它按照預期工作。 - 我仍然不夠好,因此我很容易發現那樣的愚蠢錯誤。謝謝。沒有你花時間發佈正確的腳本,我不知道要花多長時間才能發現錯誤。我相信它會有一段時間。 - 再次感謝,安德魯 – Andrew