为什么$('#file-input')。click()在浏览器控制台中调用时不会打开文件输入对话框?

时间:2014-11-28 03:42:25

标签: javascript jquery html file-io triggers

我找到了这个小提琴:http://jsfiddle.net/QVAC7/,它帮助我打开文件输入对话框。这个想法很简单:

HTML

<button id="id">Open</button>
<input id="yourinputname" type="file" name="yourinputname" style="display: none;" />

JS

$('#id').on('click', function() {
    $('#yourinputname').trigger('click');
});

代码工作正常,当我点击按钮时,会出现一个对话框。

但有一件奇怪的事情是,当我向Chrome控制台输入相同的命令时,对话框没有显示出来。

$('#yourinputname').trigger('click');

he dialog did not show up

这有什么理由吗?

1 个答案:

答案 0 :(得分:2)

如果您正在使用控制台尝试在JSFiddle中找到与$('#yourinputname')关联的jQuery对象,则无法找到它,因为JSFiddle的“Result”部分位于iFrame中,其中包含此代码的“结果”在JSFiddle应用程序范围之外的辅助文档中。

在您从这个小提琴中取出重要代码,将其插入某个页面并自行运行之前,您将无法以这种方式从控制台运行代码。