0

从下面的代码中,您可以看到我正在尝试动态创建一个输入类型文件文本框,然后触发“单击”事件,以便弹出文件浏览器。一旦选择了一个文件,“更改”事件就会读取该文件。

            var i = new TextBox({name:'file',type:'file'});

            on(i.domNode, "change", onChange);
            on.emit(i.domNode, "click", {bubbles:true, cancelable:true});

            function onChange(e){
                var reader = new FileReader();

                reader.onload = function(e) {
                    console.log(e.target.result);
                }

                reader.onerror = function(stuff) {
                    console.log("error", stuff);
                    console.log (stuff.getMessage());
                }

                reader.readAsText(i.domNode.files[0]);
            }

这在 Chrome 中完美运行,但在 IE 中失败,没有提供任何消息。我认为这可能是事件本身,但我也尝试了“onclick”和“onclick”。没有任何效果。

4

1 回答 1

0

文件浏览器会在 chrome/safari 中弹出,因为这是它们的默认行为 - 您不必“发出”点击事件。IE 不支持通过单击文本框来启动文件浏览器。

用户必须单击该按钮以调出文件浏览器。

于 2013-08-08T03:33:50.067 回答