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 *">
      
  • 相关阅读:
    JS深度判断两个数组对象字段相同
    box-shadow inset
    swiper实现滑动到某页锁住不让滑动
    vuex上手文章参考
    js基础补漏
    react学习文章
    C# .Net String字符串效率提高-字符串拼接
    JS,Jquery获取各种屏幕的宽度和高度
    highcharts的dataLabels如何去处阴影
    .net C# 抽奖,中奖
  • 原文地址:https://www.cnblogs.com/clark159/p/4892977.html
Copyright © 2011-2022 走看看