页面加载时获取查询字符串值失败

时间:2015-02-20 17:14:08

标签: javascript angularjs

  

注意:此页面的旧版本无法使用AngularJS。

在页面加载的jQuery / javascript文件中,我运行一个函数来返回一个以空字符串形式返回的查询字符串值,但是url中确实存在值。返回的查询字符串值将发送到switch语句,该语句返回在浏览器呈现时将在页面上显示的电话号码。

// Page load/ready
var campaignSub = getParameterByName("sub");
getPhoneNumber(campaignSub);

然后在我的html标记中,我提供了我的第三方脚本,该脚本扫描页面,查找从我的switch语句返回的电话号码,并用从回收的电话池中提取的电话号码替换该电话号码号。

之后,我的Angular Controller会激活并加载部分视图ui.router以显示问卷。

我的问题:为什么我无法从首先触发的脚本中返回一个简单的查询字符串参数值?

1 个答案:

答案 0 :(得分:1)

最佳和最佳方式to get query string values using JavaScript。查看以下示例以获取查询字符串。

var queryString = window.location.search || '';
var keyValPairs = [];
var params      = {};
queryString     = queryString.substr(1);

if (queryString.length)
{
   keyValPairs = queryString.split('&');
   for (pairNum in keyValPairs)
   {
      var key = keyValPairs[pairNum].split('=')[0];
      if (!key.length) continue;
      if (typeof params[key] === 'undefined')
         params[key] = [];
      params[key].push(keyValPairs[pairNum].split('=')[1]);
   }
}

使用上述脚本

//url=http://stackoverflow.com/how-to-get-query-string-values-in-javascript?query=123&list=default
params['query'];
//Output ["123"]

params['list'];
//Output ["default"]

//Note: If the query string value is empty the method will return the value as empty string.