Javascript停止重定向

时间:2012-02-03 23:09:22

标签: javascript jquery android cookies redirect

我有一个脚本可以检测到Android设备,然后重定向到“android.html”。在“android.html”页面上,您可以下载应用程序或点击“继续”继续“index.html”。问题是当你点击“CONTINUE”时,你会陷入无限重定向循环回到“android.html。如何点击”CONTINUE“忽略浏览器检测重定向脚本?

index.html javascript android detection redirect

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 :(得分:0)

在网址中添加一些查询字符串

<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';
}

答案 1 :(得分:0)

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>

答案 2 :(得分:0)

我不知道你是否可以,但是一个解决方案是使用查询字符串中的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>

请注意,我获取字符串值的方式无论如何都不是错误证明,您可以查看this answer

答案 3 :(得分:0)

您可以使用javascript的localStorage。

的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>

答案 4 :(得分:0)

参数可能会有效,但现在您需要更改指向index.html页面的所有链接,以便传递...粗略。你真正想要做的是设置一个你可以双方检查​​的cookie。 (我假设这是你预期的回复,因为你用 cookies 标记了你的问题。)

由于您已标记了 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';
}

我没有为我的JS使用jQuery,但这里有一个关于库的好文档(我假设jQuery没有内置的cookie支持?):http://www.electrictoolbox.com/jquery-cookies/