2014-01-22 38 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

相關問題