2016-07-06 65 views
0

<小白> 這下面的代碼工作就像一個魅力,當我使用正確的網址如何忽略URL中的額外參數?

www.exemple.com/?login

$(document).ready(function(){ 

function urlparam(){ 
    var url = window.location.href.split('?')[1]; 
    if (url == 'login') { 
     document.getElementById('loginMainContainer').style.display = 'block'; 
     $('.login').triggerHandler('click'); 
    } else if (url == 'signup'){ 
      document.getElementById('loginMainContainer').style.display = 'block'; 
      $('.signup').triggerHandler('click'); 
    } 
} 
    urlparam() 
}); 

但是,一旦我需要使用這個網址與其他參數(W/mailchimp)

www.exemple.com/?login & utm_source =應用+帳戶& utm_campaign = e94f95d4da-News_promo + email_English_2016

它確實沒有執行我所需要的。 有沒有辦法忽略這些額外的參數並正確執行我的功能?

感謝您的高級幫助!

< /小白>

回答

0

我會用正則表達式來處理這個問題,它測試,如果字符串登錄開始,或者如果它與註冊開始匹配。

var url = ('www.exemple.com/?login&utm_source=App+Accounts&utm_campaign=e94f95d4da-News_promo+email_English_2016').toString().split('?')[1]; 
    if (url.match(/^login/)) { 
     console.log('login'); 
    } else if (url.match(/^signup/)){ 
     console.log('signup'); 
    } 
+0

好可愛!非常感謝。我只是將第一行改爲: 'var url = window.location.toString()。split('?')[1];' – gabrielkarasek

+0

當然沒問題,我很樂意幫助:) –

0

你只需要得到所有的參數,並檢查是否存在login

var url="http://someurl.com?test=ok&machin=1234&login&azir=lol"; 
 

 
function parameterExist(url,paramName) 
 
{ 
 
    var parameters = url.split('?')[1].split('&'); 
 
    for(var i=0;i<parameters.length;i++) 
 
    { 
 
    var paramNameUrl=parameters[i].split('=')[0]; 
 
    if(paramNameUrl==paramName) 
 
     return true; 
 
    } 
 
    return false; 
 
} 
 

 
console.log(parameterExist(url,"login")); 
 
console.log(parameterExist(url,"blabla"));