2016-09-27 84 views
0

有没有办法在JS中编写函数,如果URL包含utm_campaign值,则发送它,否则将其留空。根据URL中的值捕获数据

例如我有这个链接。

http://example.com/home/?utm_campaign=mycampaign_2016_en&utm_medium=cpc&utm_source=google&utm_content=home 

我想让我的函数在脚本中返回“campaign_2016_en”。而当utm_campaign参数不可用时返回空白。但请注意,URL和值始终不会相同。

我不确定从哪里开始。感谢所有的帮助。

回答

2

你可以试试这个:

function getParameterByName(name, url) { 
     if (!url) url = window.location.href; 
     name = name.replace(/[\[\]]/g, "\\$&"); 
     var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
      results = regex.exec(url); 
     if (!results) return null; 
     if (!results[2]) return ''; 
     return decodeURIComponent(results[2].replace(/\+/g, " ")); 
    } 

调用上面的函数,此函数将返回空,如果查询字符串值是不可用的。

getParameterByName('utm_campaign', 'http://example.com/home/?utm_campaign=mycampaign_2016_en&utm_medium=cpc&utm_source=google&utm_content=home'); 

或者只是传递查询字符串参数名称。它将使用window对象读取URL

getParameterByName('utm_campaign'); 

JS小提琴:

https://jsfiddle.net/wx38rz5L/4199/

+0

你知道我怎样才能上的jsfiddle测试呢? –

+0

看到这个小提琴的例子https://jsfiddle.net/wx38rz5L/4199/ –

+0

谢谢。它工作完美! –