Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么此代码不通知文本文件中的文本?(javascript/html)_Javascript_File_File Io - Fatal编程技术网

为什么此代码不通知文本文件中的文本?(javascript/html)

为什么此代码不通知文本文件中的文本?(javascript/html),javascript,file,file-io,Javascript,File,File Io,这是我的密码。问题是信息没有被提醒。它在Js Fiddle中工作,但在chrome/firefox/safari上不起作用。当我尝试使用document.write在JSFIDLE中显示文本时,它也不起作用。这个代码给了我很多问题 <html> <head> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type=

这是我的密码。问题是信息没有被提醒。它在Js Fiddle中工作,但在chrome/firefox/safari上不起作用。当我尝试使用document.write在JSFIDLE中显示文本时,它也不起作用。这个代码给了我很多问题

<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
                    function readMultipleFiles(evt) {
            //Retrieve all the files from the FileList object
            var files = evt.target.files;
            if (files) {
                var r = new FileReader();
                for (var i = 0, f; f = files[i]; i++) {
                    r.onload = (function(f) {
                        return function(e) {
                            var contents = e.target.result;
                            alert(contents);
                        };
                    })(f);
                    r.readAsText(f);;
                }
            } else {
                alert("Failed to load files");
            }
        }
        document.getElementById('fileinput').addEventListener('change', readMultipleFiles, false);

    </script>
</head>
<body>
<input type="file" id="fileinput"/>

​</body>
</html>

函数读取多文件(evt){
//从FileList对象检索所有文件
var files=evt.target.files;
如果(文件){
var r=新文件读取器();
for(var i=0,f;f=files[i];i++){
r、 onload=(函数(f){
返回函数(e){
var内容=e.target.result;
警报(内容);
};
})(f) );
r、 readAsText(f);;
}
}否则{
警报(“加载文件失败”);
}
}
document.getElementById('fileinput')。addEventListener('change',readMultipleFiles,false);
​
试试看

而不仅仅是

document.getElementById('fileinput').addEventListener('change', readMultipleFiles, false);
编辑:所以是的,解决方案是


使用
chrome.exe执行chrome——对windows禁用web安全性
,或
google chrome——对linux禁用web安全性

您正在将事件分配给一个尚不存在的元素。您可以将代码移动到页面底部,或者使用DOMready事件(我不知道Google的API可能会公开一个)编辑:忽略此项。这可能是重复的问题
r.readAsText(f)这并没有解决它。如果这就是问题所在,有没有办法绕过chrome的安全性?或者按照Pekka所说的,移动整个
块,并将其粘贴到
元素后。这两种方法似乎都不起作用。Chrome有奇怪的安全设置,但是如果它在JSFIDLE中工作,它不应该在Chrome中工作。JSFIDLE运行您在
窗口的Javascript部分中编写的代码。默认情况下,onload
document.getElementById('fileinput').addEventListener('change', readMultipleFiles, false);