[Cordova] 无法显示Alert视窗
2015-10-19 20:51
309 查看
[Cordova] 无法显示Alert视窗
问题情景
今天开了一个Cordova专案做范例,将预设的index.html页面修改为下列内容。按下执行却发现,这样一个简单的范例无法正常执行。点击页面上的Click Me按钮,没有办法显示Alert视窗。<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <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 *"> <title>BlankCordovaApp1</title> <script> function test() { alert("Clark") } </script> </head> <body> <p>您好,您的应用程式已准备好!</p> <button onclick="test()">Click Me</button> </body> </html>
解决方案
经过排查程式码后发现,在预设的状态下Cordova会为HTML加上「Content-Security-Policy」这个安全性设定,并且预设不启用内嵌JavaScript。 (其实预设页面的注解就有写了...)预设页面注解
<!-- 视需要在下方的中继标签中自订内容安全性原则。将'unsafe-inline' 加入default-src 以启用内嵌JavaScript。 如需详细资料,请参阅http://go.microsoft.com/fwlink/?LinkID=617521 -->
知道了问题之后,只需要将「'unsafe-inline'」加入Content-Security-Policy里的default-src区块,就可以让Alert视窗正常的执行并显示。
Before
<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 *">
After
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval' ' unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *">
相关文章推荐
- 《大话设计模式》读书笔记2
- mysql修改表、字段、库的字符集
- butterKnife插件不能用?不显示generate Butterknife Injections
- PO BO VO DTO POJO DAO概念及其作用
- window对象
- 三点共圆
- iOS UIViewContentMode各类效果
- Android数据存储(1):SharedPreferences
- 5-1 厘米换算英尺英寸
- Chrome vim扩展 之 cVim 插件 键盘党的利器
- 日常总结(四)eclipse或者myeclipse调试不显示变量值
- zjnu 1186 乘积最大(区间DP)
- 迷宫
- 解题报告:LeetCode Basic Calculator(简单计算器)
- 迷宫
- Qt SD卡 文件系统挂载、文件预览
- jdbc详解(二)
- 数据库范式
- Linux修改swap空间大小
- 闪屏页的实现简单原理