У меня есть приложение, которое позволяет пользователям выигрывать призы.Чтобы выиграть приз, им нужно попасть на страницу, подобную этой: www.myUrl.com#isAWinner
, где #isAWinner
- моя мобильная страница.Я обеспокоен тем, что кто-то подумает о том, чтобы просто ввести этот URL-адрес и перейти непосредственно на страницу победителя без фактического выигрыша.Чтобы исправить это, я попытался сделать это:
<!-- Show this if the user is a winner -->
<div id = "isAWinner" data-role = "page">
<p>YOU WIN!!!</p>
<!-- Invisible link -->
<a href = "#beforeLogin" id = "goBack" class = "InvisibleLinks"></a>
<!-- Ensures that the user does not just enter #isAWinner to the end of the URL -->
<script type="text/javascript"> reallyAWinner()</script>
</div>
function reallyAWinner () {
alert(isAWinner);
//Check to see if they really are a winner
if (isAWinner == false) {
//Not really a winner. Send back to login
$('#goBack').click();
}
}
Проблема заключается в том, что alert
попадает при первоначальной загрузке страницы, но если я пытаюсь перейти по этому URL после слов, то метод неударить снова.
Не понимаю, как работает JQuery mobile?Будет ли он попадать в этот метод reallyAWinner()
только при загрузке всей страницы HTML, а не при загрузке страницы isAWinner
?Если да, есть ли другой способ проверить, действительно ли пользователь является победителем, только при загрузке страницы isAWinner
?
Изменить : здесь немного больше информации.Когда я вхожу в метод изначально без загрузки первой страницы, предупреждение в reallyAWinner()
сработает до того, как у меня появится предупреждение в моем методе document.ready
, в результате чего $('#goBack').click();
не будет работать (так как мобильный телефон не загружен)