Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “中的按钮不可单击”;“你好,世界”;科尔多瓦应用_Javascript_Ios_Cordova - Fatal编程技术网

Javascript “中的按钮不可单击”;“你好,世界”;科尔多瓦应用

Javascript “中的按钮不可单击”;“你好,世界”;科尔多瓦应用,javascript,ios,cordova,Javascript,Ios,Cordova,我创建了一个新的Cordova应用程序,并运行Cordova run ios命令以获得默认的Cordova闪烁屏幕 当我添加一个按钮时,它是不可点击的。我用纯vanila JS写了这个动作。我最初尝试在一个单独的文件中编写按钮操作,并将其作为脚本文件导入,但也没有成功 <html> <head> <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap:

我创建了一个新的Cordova应用程序,并运行
Cordova run ios
命令以获得默认的Cordova闪烁屏幕

当我添加一个按钮时,它是不可点击的。我用纯vanila JS写了这个动作。我最初尝试在一个单独的文件中编写按钮操作,并将其作为脚本文件导入,但也没有成功

<html>
<head>
    <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>
    <script type="text/javascript" language="JavaScript">            
        //Create a new To-Do
        function createNewToDo()
        {
            alert('hi');
        }
    </script>
</head>
<body>
    <div class="app">
        <h1>Apache Cordova</h1>   

  /******** Both buttons not clickable     
            <button class="button" id="getDate">Get Date</button>
            <button type="button" class="addToDo" onclick="createNewToDo()">/>TO DO</button>            
  *********/
    </div>
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
</body>

你好,世界
//创建一个新的任务
函数createNewToDo()
{
警报(“hi”);
}
阿帕奇科尔多瓦酒店
/********两个按钮都不可单击
约会
/>做
*********/

这是因为
内容安全策略
元标记不允许onclick

只需将“不安全内联”添加到默认的src节或脚本src中,编辑它以允许onclick。例如:

<meta http-equiv="Content-Security-Policy" content="default-src 'unsafe-inline' 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">

顺便说一句,如果您为设备启用远程调试并打开桌面Safari检查应用程序,您将收到如下错误消息:

拒绝执行内联事件处理程序的脚本,因为 “不安全内联”既不出现在脚本src指令中,也不出现在 内容安全策略的默认src指令

这样使用:

<html>
<head>
    <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">
    <meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *" />

    <link rel="stylesheet" type="text/css" href="css/index.css">
    <title>Hello World</title>
    <script type="text/javascript" language="JavaScript">            
        //Create a new To-Do
        function createNewToDo()
        {
            alert('hi');
        }
    </script>
</head>
<body>
    <div class="app">
        <h1>Apache Cordova</h1>   

       <!--- Both buttons not clickable   --->
            <button class="button" id="getDate">Get Date</button>
            <button type="button" class="addToDo" onclick="createNewToDo()">TO DO</button>            

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

你好,世界
//创建一个新的任务
函数createNewToDo()
{
警报(“hi”);
}
阿帕奇科尔多瓦酒店
约会
做

+1用于调试提示。我一直在模拟器上测试。将报告我的发现。设备应显示在Safari桌面上的“调试”选项卡上(我认为您必须在Safari上启用开发人员模式,或使用Safari技术预览,默认情况下启用了该模式),我已经有了“不安全内联”,这没有任何区别。@BK在您的示例中,您的
不安全内联
仅用于
样式src
,而不是
默认src