如何将2种不同的变量类型组合成1个javascript代码

时间:2017-05-11 14:12:47

标签: javascript redirect browser device

我目前有两个不同用途的工作脚本: 1)是一个基于浏览器语言的自动重定向脚本 2)是一个脚本,它根据正在使用的设备将访问者发送到特定页面

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>var language = navigator.language || navigator.userLanguage;
window.onload=function(){
if (language.indexOf('fr') > -1) {
document.location.href = 'mysite.com/french';
} else {
document.location.href = 'mysite.com/intl'; }}</script>


<script>function DeviceDirection()
{ if( 
/nokia/i.test(navigator.userAgent) || 
/Android/i.test(navigator.userAgent) ) 
{ window.open('mysite.com/android_and_nokia_devices'); }else{ window.open('mysite.com/all_devices'); } }</script>

我需要将这两个功能合并为一个脚本,将点击某个按钮的访问者引导到仅使用Android的法国用户专用页面,而所有其他人应该转到另一个常规页面。

我尝试输入以下代码,并以多种方式对其进行编辑,但不起作用。你能帮我把它搞定吗?提前谢谢。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>var language = navigator.language || navigator.userLanguage;
window.open=function FrenchAndroid(){
if (
/Android/i.test(navigator.userAgent) ||
language.indexOf('fr') > -1) )
{ window.open('mysite.com/android_devices_for_french_visitors/');
}else{
window.open('mysite.com/all_other_languages_and_devices'); } }
</script>

请帮助我在上面建造这个。

1 个答案:

答案 0 :(得分:0)

我认为这段代码片段是您所需要的:

function isFrenchAndroid() {
    var language = navigator.language || navigator.userLanguage;
    var isAndroid = /Android/i.test(navigator.userAgent);
    var isFrench = language.indexOf('fr') !== -1;

    return isFrench && isAndroid;
}

var btn = document.querySelector('button');

btn.addEventListener('click', function(event) {
    event.preventDefault();

    if (isFrenchAndroid()) {
        window.open('https://www.google.fr');
    } else {
        window.open('https://www.google.com');
    }
});

如果设备运行Android并且浏览器的语言是法语,则函数isFrenchAndroid将返回true。然后单击事件附加到按钮,并在检查后打开一个新窗口。您可以在此JS Bin中看到正在运行的示例。

如果您不想打开新窗口,我建议改为使用window.location.href = 'https://www.google.fr'

希望它有所帮助。