我有3个html文件 - start.html,loginPage.html和dashboard.html。单击登录按钮时,它应该加载仪表板,但我无法访问该按钮。
的start.html
Person = Ractive.extend({
template: "<p>the person named {{name}}</p>",
computed: {
name: {
get: function(){
if(typeof(this.get('_name'))=='undefined'){return "nameless"}
else{return this.get('_name')}
},
set: function(val){
this.set('_name',val)
}
}
}
});
people_model = new Ractive({
el: '#people_container',
template: '{{#people}}<person/>{{/}}',
data: {
people: [{},{},{}]
},
components :{person : Person}
});
people_model.set('people.0.name','Spongebob')
loginPage.html
<html>
<head>
<meta http-equiv="Content-Security-Policy">
<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">
<title>Amazon App</title>
</head>
<body onload="init()">
<br><br>
<div id='content'>
<center><img src='img/splashlogo.png'/><center>
</div>
<script src="cordova.js"></script>
<script src="js/jquery.min.js"></script>
<script src="js/jquery.mobile.min.js"></script>
<script src="require.js"></script>
<script src="aws-sdk-2.1.34.min.js"></script>
<script src="js/check.js"></script>
</body>
</html>
JS:
<link rel="stylesheet" href="css/index.css"/>
<SCRIPT TYPE="text/javascript">
function setValues(){
$("#accessKey").val('MY-ACCESS-KEY');
$("#secretKey").val('MY-SECRET-KEY');
}
</SCRIPT>
<div data-role="page" id="start" data-enhance="false" style = 'background: url(../img/BG.png);'>
<div data-role = "content">
<br><br>
<div align="right">
<img src="./img/help-icon.png" onClick= "setValues()"/>
</div>
<div align = "center">
<img src="./img/Logo login screen.png" height="200" width="170"/>
</div>
<br><br>
<form id="loginForm" align = "center" data-ajax="false">
<div id="user" align = "center">
<input class="amazeFont" type="text" id = "accessKey" Placeholder="Access Key (20 characters)" size="30" maxlength="128" tabindex="1" autocomplete="on" autocorrect="off" autocapitalize="off" data-validation="[NOTEMPTY]"/>
</div>
<br><br>
<div id = "pass" align = "center">
<input class="amazeFont" type="password" id = "secretKey" Placeholder = "Secret Key (40 characters)" size="30" maxlength="1024" autocomplete="on" tabindex="2" data-validation="[NOTEMPTY]"/>
</div>
<br><br>
<center><button type = "submit" id="submitButton" style='width: 80%; height: 40px; background-color: #f15a29; font-weight: bold; color: white; cursor: pointer;'>Login</button></center>
</form>
</div>
</div>
<script src="cordova.js"></script>
<script src="js/jquery.min.js"></script>
<script src="js/jquery.mobile.min.js"></script>
<script src="require.js"></script>
<script src="aws-sdk-2.1.34.min.js"></script>
<script src="js/fun.js"></script>
<script src="js/check.js"></script>
登录页面不会切换到仪表板页面。它会重新加载。没有捕获按钮单击。我想让页面滑动。
编辑:
更新的js:
function init(){
document.addEventListener("deviceReady", onDeviceReady,false);
}
function onDeviceReady(){
window.location = 'loginPage.html';
document.getElementById('submitButton').addEventListener("click", startApp,false);
}
function startApp(){
alert('switching page');
window.location= 'dashboard.html';
}
为loginPage.html创建了第二个js并将其添加到loginPage.html
的主体中function init(){
document.addEventListener("deviceReady", onDeviceReady,false);
}
function onDeviceReady(){
window.location = 'loginPage.html';
}
未调用dashboard.html
答案 0 :(得分:1)
您正在从start.html调用init()方法,其中onload调用function onDeviceReady()
具有位置更改,因此其他页面加载。
当start.html加载时,不需要在loginPage.html(可能在不同的函数中)页面加载时添加document.getElementById('submitButton').addEventListener("click", startApp,false);
。
希望它有所帮助。