我有一个包含输入文件字段的表单[
<input type="file" id="select-file" accept=".md"><label for="select-file">Select import file</label>
]。它为更改事件定义了一个 jQuery 处理程序 [$("#form").on("change", "#select-file", handler)
],一旦我选择了一个文件,就会触发该事件。
它可以在使用 Firefox 的 Linux work 和home 以及使用 Firefox 和 Chrome 的 Windows 上完美运行。
在使用 Chrome 或 Firefox 的 Windows work 中,浏览器在选择文件后会冻结约 8 秒。只有在此间断之后,我才能按下表单上的其他按钮并触发“更改”事件。
抛开 Windows 和工作不相匹配的假设,冻结似乎与工作中可用的不同网络磁盘有关。谁能建议我必须检查什么,并希望有一种方法可以避免冻结?谢谢!
小例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>File Select</title>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
</head>
<body>
<div id="import-form">
<input type="file" id="select-file" accept=".md">
<label for="select-file">Select a file</label>
<p id="selected-file">No file selected</p>
</div>
<script>
$("#import-form").on("change", "#select-file", function(e) {
$("#selected-file").text(e.target.value.split('\\').pop());
});
</script>
</body>
</html>
使用任何文件字段后,Chrome 会冻结几秒钟。
这是因为我在Windows资源管理器的“快速访问”菜单中有一个快捷方式。此快捷方式已链接到网络共享的文件夹。我已经删除了这个快捷方式,现在一切都很好。
我们必须在使用 $ 的括号内使用反引号。应用单引号也会导致问题。