2016-07-06 31 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"));