2016-11-14 58 views
-1

需要快速帮助来更改“var $ siteURL”&数据“站点:值”。根据环境检测在函数内部声明变量

如果是桌面环境,请将代码更改为“DES001”。 否则,如果其移动环境,更改代码为“MOB001”。

默认情况下,桌面siteURL &网站数据值正常工作。

感谢

JS:

var $siteCode = 'DES001'; 

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 
    alert("Mobile Device"); 
    var $siteCode = 'MOB001'; 
} 

$('#SubmitForm').click(function() { 
    var $linkURL = 'http://www.test.com/SITE=', 
     $siteURL = $siteCode, 
     $webServiceURL = $linkURL + $siteURL; 

    var $data = { 
    ARRANGE: 'DDD', 
    BOOKING: 'CASH', 
    SITE: $siteCode, 
    } 

var $tripFlowUrl = $webServiceURL + $.param($data); 
alert($tripFlowUrl); 
}); 
+0

嗨@David ..移动侦测正在为我工​​作..请让我知道如何更改基于检测SiteURL和网站的数据值。这是我唯一需要解决的问题 – TDG

+0

整个问题似乎都集中在移动检测上。最好删除不相关的东西,并专注于手头的问题,即在if和if块中设置和使用变量。 – David

回答

0

你宣布你在错误的范围变量:

if (/.../) { 
    var $mobileSiteCode = ''; 
} 

// can't use $mobileSiteCode here, it's out of scope 

声明在你需要它的范围变量,然后简单地设置条件语句中的值:

var $mobileSiteCode = ''; 
if (/.../) { 
    $mobileSiteCode = 'some value'; 
} 

// now you can use $mobileSiteCode here 
+0

嗨大卫..感谢您的帮助。但是,现在是否可以通过点击功能和数据值动态更改此$ mobilesiteCode或$ desktopsiteCode值?这是我正在寻找的解决方案。谢谢。很抱歉给你麻烦。 – TDG

+0

@TDG:您可以在任何可以访问值的地方更改值。问题中的代码可能对您现在要求的内容有点不完整。但只要变量在范围内,您可以修改它们。你有一个不起作用的最小例子吗? – David

+0

我改变我上面的代码,就像你提到的。现在,即使是台式机或手机,它也只显示“DES001”。即使在移动环境中,它也没有得到“MOB001” – TDG

0
if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 
console.log("Mobile Device"); 
var $siteCode = 'MOB001'; 
} 
else{ 
console.log("Desktop Device"); 
var $siteCode = 'DES001'; 
} 

function submitForm(){ 
$('#SubmitForm').click(function() { 
    var $linkURL = 'http://www.test.com/SITE=', 
     $siteURL = $siteCode, 
     $webServiceURL = $linkURL + $siteURL; 

    var $data = { 
    ARRANGE: 'DDD', 
    BOOKING: 'CASH', 
    SITE: $siteCode, 
    } 

    var $tripFlowUrl = $webServiceURL + $.param($data); 
    alert($tripFlowUrl); 
}); 
}