Javascript FileReader如何访问reader.onload?
我目前正在学习Javascript。我正在用FileReader开发一个程序 如何访问变量Javascript FileReader如何访问reader.onload?,javascript,filereader,Javascript,Filereader,我目前正在学习Javascript。我正在用FileReader开发一个程序 如何访问变量性能的变量文件 我的代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="style/style.css"> <title>FileReader</title> </he
性能的变量文件
我的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style/style.css">
<title>FileReader</title>
</head>
<body>
<h1>FileReader</h1>
<input type='file' accept='text/plain' onchange='openFile(event)'><br>
Input: <input type="text" id="qi" value="">
<br></br>
<button onclick="check()" class="button buttonB">Check</button>
<p id="ans"></p>
<p id=".same"></p>
<script src="main.js"></script>
</body>
</html>
function check(){
var text = document.getElementById("qi").value;
console.log(`Text: ${text}`);
var perf; //The value should be `file`
if (text === perf){
console.log("Same");
document.getElementById(".same").innerHTML = "Same";
} else{
console.log("Not Same!!!")
document.getElementById(".same").innerHTML = "Not Same!!!";
}
}
function openFile(event) {
var input = event.target;
var reader = new FileReader();
reader.onload = function(){
var file = reader.result;
console.log(file);
document.getElementById("ans").innerHTML = file;
};
reader.readAsText(input.files[0]);
};
字符流
字符流
输入:
检查
函数检查(){
var text=document.getElementById(“qi”).value;
log(`Text:${Text}`);
var perf;//值应为`file`
如果(文本===性能){
控制台日志(“相同”);
document.getElementById(“.same”).innerHTML=“same”;
}否则{
console.log(“不一样!!!”)
document.getElementById(“.same”).innerHTML=“不一样!!!”;
}
}
函数openFile(事件){
var输入=event.target;
var reader=new FileReader();
reader.onload=函数(){
var file=reader.result;
console.log(文件);
document.getElementById(“ans”).innerHTML=file;
};
reader.readAsText(input.files[0]);
};
方法1:比较保存的innerHTML
方法2:将变量保存在全局范围中
只需在全局范围内保存变量文件
:
替换
var file = reader.result;
借
及
借
没问题。你需要更具体地回答你的问题。我发现你的代码有一些问题。在第4行中声明perf
,然后在第5行中检查它是否与text
变量相同,但perf
未定义-您从未初始化过它,因此else
条件将不会发生。那么这部分document.getElementById(“.same”)
-->.same
?它真的是你放在元素上的id还是类?如果是类,则应使用document.querySelector(“.same”)
;另一件事是,您的大部分代码都在check()
和openFile()
函数中,但您从不执行它们。这些函数由按钮调用。Html代码:FileReader FileReader
输入:
检查
事实上我的副本是错误的,对不起。这里有一个简单的闭包问题:您需要在两个函数共享的作用域中声明file
或perf
或第三个变量(这里是全局作用域),以便您可以在一个func中设置它,然后在另一个func中获取它(var shared;function check(){…var perf=shared;…}function openFile(){…shared=reader.result;..}
)如果您只是粘贴完整的代码而不是逐行粘贴,那么会更容易。@codeepic可能更难看到发生了什么变化。@blue112谢谢这是一个非常有用的答案
var file = reader.result;
window.file = reader.result;
if (text === perf){
if (text === window.file){