0
基本上我希望能夠從.csv文件加載配置並使用它來設置HTML頁面。經過一番挖掘,我發現了FileReader和AddEventListener的通用解決方案。我的HTML看起來像這樣:無法在由addEventListener調用的函數內調用函數[已解決]
編輯:問題已解決,代碼如下。
<html>
<head>
<script src="kernel.js"></script>
<script>
var k = new kernel();
</script>
</head>
<body>
<input type="file" id="file-input" />
<script>
document.getElementById('file-input').addEventListener('change', k.readSingleFile, false);
</script>
<!-- Tables and stuff that i want to modify -->
</body>
</html>
kernel.js:
function kernel() {
var self = this;
this.config = null;
this.readSingleFile = function(e) {
var file = e.target.files[0];
if (!file) return null;
var reader = new FileReader();
reader.onload = function(e) { self.loadConfig(e); };
reader.readAsText(file);
}
this.loadConfig = function(e) {
this.config = e.target.result;
console.log(this.config);
// Do more stuff
}
}
大教堂。
需要綁定正確的上下文。在你的內核函數中,添加'var self = this;'然後使用'var reader = self.readSingleFile(e); –
我的瀏覽器不喜歡''函數內核{'沒有()()或者 – mplungjan
PS:下一次請點擊''''按鈕並創建一個[mcve] – mplungjan