Javascript остановить перенаправление - PullRequest
0 голосов
/ 04 февраля 2012

У меня есть скрипт, который обнаруживает устройство Android, а затем перенаправляет на «android.html». На странице «android.html» вы можете загрузить приложение или нажать «ПРОДОЛЖИТЬ», чтобы перейти к «index.html». Проблема в том, что когда вы нажимаете «ПРОДОЛЖИТЬ», вы застреваете в бесконечном цикле перенаправления обратно в «android.html». Как сделать, чтобы щелкнув «ПРОДОЛЖИТЬ», игнорировать скрипт перенаправления при обнаружении браузера?

index.html javascript перенаправление обнаружения Android

var isAndroid = ua.indexOf("android") > -1;
if(isAndroid) {
   window.location = 'android.html';
}

android.html

<html>
<head>
</head>
<body>
If you are not using Dolphin Browser HD.</br>
<a href="dbs/js/DolphinbrowserV7.3.1beta.apk">CLICK HERE TO INSTALL</a></br></br>
<a href="index.html">CONTINUE</a>
</body>
</html>

Ответы [ 5 ]

0 голосов
/ 04 февраля 2012

Параматер может работать, но теперь вы захотите изменить ВСЕ ссылки на вашу страницу index.html, чтобы пропустить это ... брутто.Что вы на самом деле хотите сделать, так это установить cookie-файл, который вы можете проверить с обеих сторон.(Я предполагаю, что это ответ, который вы ожидаете, поскольку вы пометили свой вопрос куки ).

Поскольку вы пометили свой вопрос jquery ,Я рекомендую https://github.com/carhartl/jquery-cookie (хотя я никогда не использовал его) и:

android.html

If you are not using Dolphin Browser HD.</br>
<a href="dbs/js/DolphinbrowserV7.3.1beta.apk">CLICK HERE TO INSTALL</a></br></br>
<a href="index.html" onclick="$.cookie('forceAndroid', true);">CONTINUE</a>

index.html

var isAndroid = ua.indexOf("android") > -1;
if(isAndroid && !$.cookie('forceAndroid')){
   window.location = 'android.html';
}

Я не использую jQuery для своего JS, но вот хороший документ по библиотеке (я предполагаю, что jQuery не имеет встроенной поддержки cookie?):http://www.electrictoolbox.com/jquery-cookies/

0 голосов
/ 04 февраля 2012

Вы можете использовать localStorage javascript.

index.html

var isAndroid = ua.indexOf("android") > -1;
if(isAndroid) {
 localStorage.getItem('shouldContinue') ?/*nothing*/:window.location = 'android.html';
}

android.html

<a href="index.html" onclick="localStorage.setItem('shouldContinue',1);">CONTINUE</a>
0 голосов
/ 04 февраля 2012
var isAndroid = ua.indexOf("android") > -1;
var fromAndroidPage = (location.search.indexOf("fromAndroidPage=yes") != -1);

if(fromAndroidPage && isAndroid) {
   window.location = 'android.html';
}

Измените свою страницу на

<a href="index.html?fromAndroidPage=yes">CONTINUE</a>
0 голосов
/ 04 февраля 2012

Я не знаю, можете ли вы, но одно решение использует параметр a в строке запроса, например:

var isAndroid = ua.indexOf("android") > -1;
var isContinue = window.location.href.split(/ParameterName=/)[1];
if(isAndroid && notContinue) {
   window.location = 'android.html';
}

и в кнопке продолжения:

<a href="index.html?ParameterName=redirect">CONTINUE</a>

Обратите внимание, что способ получения строкового значения не является доказательством ошибки, вы можете взглянуть на этот ответ

0 голосов
/ 04 февраля 2012

Поместите строку запроса в URL

<html>
<head>
</head>
<body>
If you are not using Dolphin Browser HD.</br>
<a href="dbs/js/DolphinbrowserV7.3.1beta.apk">CLICK HERE TO INSTALL</a></br></br>
<a href="index.html?test=a">CONTINUE</a>
</body>
</html>

и в своем javascript напишите логику

var url=location.href;
var isValue=url.indexOf('?test=a') // -1 says its not there.

var isAndroid = ua.indexOf("android") > -1;
if(isAndroid && isValue==-1) {
   window.location = 'android.html';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...