码迷,mamicode.com
首页 > 其他好文 > 详细

[Cordova] 无法显示Alert视窗

时间:2015-10-19 22:06:20      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:

[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 *">
    

[Cordova] 无法显示Alert视窗

标签:

原文地址:http://www.cnblogs.com/clark159/p/4892977.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!