2014-01-22 40 views
2

我希望能够在chrome应用程序中通过input type =“file”打开文件。 下面的代码产生一个错误:如何在chrome应用程序中使用input type =“file”事件处理程序

Refused to execute inline event handler because it violates the following Content Security Policy directive

<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <input type="file" onchange="btnClick(event)" /> 

    <script> 
     function btnClick(evt) { 
      var fileReader = new FileReader(); 
      fileReader.onload = function (event) { 
       var str = event.target.result; 
       console.log(str); 
      } 
      fileReader.readAsText(event.target.files[0]); 
     } 
    </script> 

</body> 
</html> 

我能做些什么来解决这个问题?

回答

2

内联事件处理程序不会在Chrome应用程序中工作,从html中移除事件处理程序并在javascript中实现它。另外,脚本不能在html文件中。它应该在它自己的js文件中并在html中引用。这是记录HERE

HTML

<input type="file" id="file1"/> 

JS

document.getElementById("file1").addEventListener("change",handleChange); 

function handleChange(){ 
    var fileReader = new FileReader(); 
     fileReader.onload = function (event) { 
      var str = event.target.result; 
      console.log(str); 
     } 
    fileReader.readAsText(event.target.files[0]);  
} 

FIDDLE

+0

伟大的!谢谢。 – 31415926

相关问题