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 *">
      
  • 相关阅读:
    ELF和a.out文件格式的比较
    vim常用命令
    安装linux各种桌面环境
    使用virt-manager创建和管理虚拟机
    第一天 纪念一下
    i节点,容易被人遗忘的节点
    【Linux】服务器之间的免密登录脚本
    【python】python调用shell方法
    【ansible】ansible部署方式以及部署包
    【AWS】亚马逊云常用服务解释
  • 原文地址:https://www.cnblogs.com/clark159/p/4892977.html
Copyright © 2011-2022 走看看