【发布时间】:2020-02-21 01:11:36
【问题描述】:
我在 Edge 中上传文件时遇到问题。我目前这样做的方式适用于 Chrome 和 Firefox,但不适用于边缘。
<div id="banner-message">
<button id="UploadButton">Upload</button>
<input type="file" id="testUploader" style="display: none;" />
</div>
<script type="text/javascript">
$("#UploadButton").on("click", function () {
$("#testUploader").trigger("click");
$("#testUploader").on("change", function() {
console.log("change");
});
});
</script>
当我点击上传按钮时,我可以选择要上传的文件,但是当我选择文件时,什么也没有发生。而当我在 Chrome 或 Firefox 中选择文件时,会触发更改事件并记录在控制台中。
这是一个显示问题的有效 JSFiddle: https://jsfiddle.net/xpvt214o/34688/
【问题讨论】:
-
你试过没有
display: none;吗?我知道使用某些导航器(例如:Safari)不可能触发对隐藏元素的点击。 -
@Ezhno 我试图摆脱
display: none但这似乎并没有影响它。我将change事件移到click事件之外,这似乎解决了问题。 -
@Quiver 我认为将事件放在事件中是一种糟糕的语法。这可能就是 Edge 不喜欢它的原因。导航器在不工作时是否返回了一些错误?
-
@Ezhno 不。根本没有显示错误:/