Javascript 下面的代码是什么意思?

Javascript 下面的代码是什么意思?,javascript,jquery,Javascript,Jquery,我想知道下面的代码是如何工作的,因为我在一个网站上找到了获取文件名的代码,但我不完全理解它是如何工作的: function handleFileSelect(evt) { var files = evt.target.files; localStorage["fname"] = files[0].name; //save the name for future use } 对于下面这样的表单代码,上面的代码是否正确: <form action='imageupload

我想知道下面的代码是如何工作的,因为我在一个网站上找到了获取文件名的代码,但我不完全理解它是如何工作的:

function handleFileSelect(evt) {
    var files = evt.target.files;
    localStorage["fname"] = files[0].name; //save the name for future use
}
对于下面这样的表单代码,上面的代码是否正确:

  <form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='return imageClickHandler(this);' class='imageuploadform' >
    <p><input name='fileImage' type='file' class='fileImage' /></p>
<iframe class='upload_target' name='upload_target' src='#' style='width:0;height:0;border:0px;solid;#fff;'></iframe></form>


该函数绑定到该文件输入字段的
change
事件

让我们把它分解一下

function handleFileSelect(evt) {
当函数作为事件的侦听器绑定时,通常会传入表示该事件的对象。这是此事件处理程序函数接受的
evt
变量

var files = evt.target.files;
对于DOM事件,事件对象通常有一个名为
target
的属性,该属性是对触发事件的DOM元素的引用。因此
evt.target
返回文件输入元素

文件输入元素有一个名为
files
的属性,即用户选择的文件对象数组(请注意,可能只选择了一个文件,但它仍然是一个只有一个项的数组)。该行将该数组分配给
文件
局部变量

localStorage["fname"] = files[0].name;

localStorage
是作为HTML5的一部分引入的一种持久键值存储(类似cookies)<代码>“fname”是我们存储值的键。和
文件[0]。name
获取第一个文件对象,并返回其
name
属性,有效地获取所选文件的名称。然后存储该值,这样即使您刷新页面,您也可以通过运行
localStorage[“fname”]

读回上次选择的文件名。具体来说,您不清楚该值是什么?evt.target.files,它是假设与我在表单中已有的目标名称匹配,还是它自己的关键字。还有文件呢,它是否与文件输入的name属性相匹配?应该是evt.upload\u target.fileImage吗?“fname”在本地存储中来自哪里?好的,这是一个很好的解释,我完全理解它,谢谢:)可能值得补充的是,所使用的功能只在最近的浏览器中可用,它们在不太旧的浏览器中会失败。