我有以下代码,如果我将触发功能保留在确认功能内,则它在Chrome中不起作用,但在Firefox和Edge中有效。
<head>
fileInput = $('<input type="file" id="upload-file" name="timing-upload" style="display:none;"/>');
if (confirm("Are you sure you want to replace all files?")) {
$(fileInput).trigger('click');
}
但是如果我们删除Chrome中的确认条件,它就会起作用。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
fileInput = $('<input type="file" id="upload-file" name="timing-upload" style="display:none;"/>');
$(fileInput).trigger('click');
已经有一个类似的问题Triggering a input file click does not bring the file upload dialog,但没有满意的答案。
我们非常感谢您的帮助。预先感谢。
答案 0 :(得分:0)
我不确定,但是根据confirm documentation,我认为这是代码无法在chrome中运行的原因:
从Chrome 46.0开始,除非该沙箱属性的值设置为allow-modal,否则此方法将在
<iframe>
中被禁止。