2016-11-14 4 views
-1

Нужна быстрая помощь для изменения «var $ siteURL» & данных «САЙТ: значение».Объявление переменной внутри функции, основанной на обнаружении среды

Если среда рабочего стола, измените код на «DES001». В противном случае, если его мобильная среда, измените код на «MOB001».

По умолчанию рабочий стол сайтаURL & Значение данных сайта отлично работает.

Благодаря

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'. – 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); 
}); 
} 
Смежные вопросы