日历 javascript 通话不工作

calendar javascript call not working

编辑

我已经尝试了下面的建议,但它们仍然不起作用。我得到的错误是:

"Refused to execute inline script because it violates the following Content Security Policy directive: "default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'”。'unsafe-inline'关键字,散列('sha256-egiF+Vb0Vz6d/Eu2SO2D+0PSd3mbX/UWP8Bx7aqvuZQ='),或者需要随机数 ('nonce-...') 才能启用内联执行。另请注意,'script-src' 未明确设置,因此 'default-src' 用作后备。“

谁能解释一下这个意思?

我相信有一个简单的答案,如果有人能告诉我我做错了什么,我将不胜感激。我正在尝试在空白页面中调用基本日历。然而什么也没有发生。我已经验证了我知道要做的一切,但仍然没有出现。

<!DOCTYPE html>
<html>
    <head>
        <!--
        Customize this policy to fit your own app's needs. For more guidance, see:
            https://github.com/apache/cordova-plugin-whitelist/blob/master/README.md#content-security-policy
        Some notes:
            * gap: is required only on iOS (when using UIWebView) and is needed for JS->native communication
            * https://ssl.gstatic.com is required only on Android and is needed for TalkBack to function properly
            * Disables use of inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:
                * Enable inline JS: add 'unsafe-inline' to default-src
        -->
        <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 *; img-src 'self' data: content:;">
        <meta name="format-detection" content="telephone=no">
        <meta name="msapplication-tap-highlight" content="no">
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
        <link rel="stylesheet" type="text/css" href="css/index.css">
        <title>Hello World</title>
        <link rel="stylesheet" href="fullcalendar/fullcalendar.css" />
        <script src="lib/jquery.min.js"></script>
        <script src="lib/moment.min.js"></script>
        <script src="fullcalendar/fullcalendar.js"></script>
            <script>
        $(document).ready(function() {

    // page is now ready, initialize the calendar...

    $('#calendar').fullCalendar({
        // put your options and callbacks here
    })

});
    </script>
    </head>

    <body>
        <div id="calendar"></div>


        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
    </body>
</html>

您的代码无法正常工作可能有多种原因。由于信息不足,无法查看详情。这是 Full Calendar 的工作示例。请关注:

$(document).ready(function() {

  // page is now ready, initialize the calendar..
  $('#calendar').fullCalendar({
    weekends: false,
    dayClick: function() {
      alert('a day has been clicked!');
    },
    defaultView: 'agendaWeek'

  });

});
<link href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.3.2/fullcalendar.min.css" rel="stylesheet"/>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.3.2/fullcalendar.min.js"></script>


<div id='calendar'></div>

没有发生任何事情,因为内联脚本(即实际上是您页面的一部分,而不是从 linked .js 文件加载的脚本)已被您的内容安全策略禁用。这就是错误消息告诉您的内容。

假设您想要允许它们(尽管理论上存在 XSS 攻击的潜在风险),那么启用的线索就在您代码中其正上方的注释中:

Disables use of inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:

  • Enable inline JS: add 'unsafe-inline' to default-src

因此只需修改标记的 default-src 部分以包含该指令。更改自:

default-src 'self' 

default-src 'self' 'unsafe-inline'

如果您不想这样做,则替代方法是将 Javascript 从您的页面移动到单独的 .js 文件,然后使用 [=13] 向其提供 link =] 标签类型。

请注意,其中的 none 在任何方面都与 fullCalendar 直接相关,并且完全与安全策略有关,它控制允许页面使用的脚本和资源。有关此主题的介绍,请参阅 https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP