zoukankan      html  css  js  c++  java
  • [Cordova] 无法显示Alert视窗

    [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 *">
      
  • 相关阅读:
    007 多元线性回归
    006 一元线性回归
    013 调整数组顺序使奇数位于偶数前面
    012 数值的整数次方
    011 二进制中1的个数
    010 矩形覆盖
    009 变态跳台阶
    008 调台阶
    007 斐波那契数列
    005 回归分析
  • 原文地址:https://www.cnblogs.com/clark159/p/4892977.html
Copyright © 2011-2022 走看看