相关文章推荐
风流的春卷  ·  PulseAudio context ...·  1 年前    · 
深情的小摩托  ·  记录docker异常:oci ...·  2 年前    · 
留胡子的热带鱼  ·  .net jsonobject 引用 ...·  3 年前    · 
Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' chrome-extension-resource:". 但是在IE、Firefox卻不會有這個錯誤出現,找到google之後發現了因, 因為Cordova在建立專案後,在index.html中的Meta加入下列的語法: <meta http-equiv="Content-Security-Policy" content="default-src ' self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 所以Chrome會擋住嵌在HTML內的Javascript及onClick等事件的執行, 必須把在HTML內嵌入的Javascript獨立出來成為一個js檔就可以了, 例如我原本的程式: <!DOCTYPE html> <meta charset="utf-8"> <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> <title>Hello World</title> </head> <div></div> </body> </html> <!--<script type="text/javascript" src="cordova.js"></script>--> <script> alert("hi"); </script> 把script內程式獨立出一個js檔,名為test01.js,內容如下: alert("hi"); 而原本的HTML檔就修改為: <!--<script type="text/javascript" src="cordova.js"></script>--> <script type="text/javascript" src="test01.js"></script> 這樣在Chrome上測試時就正常了。 當然我們也可以把<meta http-equiv="Content-Security-Policy"... 這一段meta刪掉,就沒有上述的問題了。