2013-09-25 52 views
0

我正在尝试编写一个java脚本来读取chrome中的文件,并使用chrome的javascript调试器。 这里是脚本:在chrome中读取文件

function myFunction() 
{ 
alert("I am an alert box!"); 
var e ; 
var contents; 
var control = document.getElementById("myfile"); 
    files = control.files; 
console.log("Filename: " + files[0].name); 
var reader = new FileReader(); 
reader.readAsText(files[0]); 

reader.onload = function (e) { 


    contents = e.target.result; 

    }; 

console.log("File contents: " + contents); 
console.log("I am an alert box!");console.log("I am an alert box!"); 



} 





</script> 

当我运行的代码内容的变量是不确定的。大量的讨论已经进入到这一点,但我还没有找到解决办法。我正在使用--allow-file-acess-from-files选项。 现在下面的代码工作在一个陌生的方式:

<script> 
function myFunction() 
{ 
alert("I am an alert box!"); 
var e ; 
var contents; 
var control = document.getElementById("myfile"); 
    files = control.files; 
console.log("Filename: " + files[0].name); 
var reader = new FileReader(); 
reader.readAsText(files[0]); 

reader.onload = function (e) { 
    contents = e.target.result ; 
    }; 
console.log(e.target.result); 
console.log("I am an alert box!");console.log("I am an alert box!"); 
} 
</script> 

它抛出一个错误,这是“遗漏的类型错误:无法未定义读取属性‘目标’” 然而,在手表式窗口中的下列变量显示,正在读取文件。

event.target.result:“固件文件 ↵:10000000782600204D4B0000B94B0000B94B000092 ↵:10001000B94B0000B94B0000B94B000000000000D4 ↵:10002000000000000000000000000000B94B0000CC ↵:10003000B94B000000000000B94B0000210B00008C ↵:10004000B94B0000B94B0000B94B0000B94B0000A0 ↵:10005000B94B0000B94B0000B94B0000B94B000090 ↵:10006000B94B0000B94B0000B94B0000B94B000080 ↵:10007000B94B0000B94B0000B94B0000B94B000070 ↵:10008000B94B0000B94B0000B94B0000B94B000060 和e.target.result和contents变量的输出相同。

为什么代码行为如此恶劣? 请帮助我。我不熟悉javascripting。

+0

可能重复http://stackoverflow.com/questions/4100927/chrome -filereader) –

回答

1

e.target将在您的第二个console.log中未定义 - 底部 - 只有一个在您的onload函数内,因此已设置e

第二个是你在顶部定义的var e ;,它是空的,因此e.target.result是无效的。

E:换句话说,删除这条线,或将其移动到函数:

bogus line

[铬的FileReader](的
+0

在我完成你告诉我的更改之后,当我遍历代码时,它永远不会进入onload函数。因此,我在那里发表声明,以便它至少进入onload函数。 – RAN