Javascript “中的按钮不可单击”;“你好,世界”;科尔多瓦应用
我创建了一个新的Cordova应用程序,并运行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 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