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

Get query string value on page load fails

本文关键字:查询 字符串 失败 获取 加载      更新时间:2024-03-07

注意:此页面有一个不使用AngularJS的旧版本。

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

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

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

在那之后,我的Angular Controller启动并加载一个局部视图ui.router以显示一个问题。

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

使用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.