Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE获取URL参数失败_Javascript_Url_Ecmascript 6_Ecmascript 5 - Fatal编程技术网

Javascript IE获取URL参数失败

Javascript IE获取URL参数失败,javascript,url,ecmascript-6,ecmascript-5,Javascript,Url,Ecmascript 6,Ecmascript 5,我有一个函数,应该是获取URL参数,但只是在IE(使用11)突破。我最初认为这是因为一些较新的ES6特性和语法,所以为ES5编写了它。然而,它仍然不起作用。有人知道在一个非常古老的遗留项目上可以做什么或修复什么吗。我确实尝试了Object.Assign的多边形填充 ES6: ES5版本: getQueryURLParams = function(pName) { var urlObject = location.search .slice(1) .split('&') .map(fun

我有一个函数,应该是获取URL参数,但只是在IE(使用11)突破。我最初认为这是因为一些较新的ES6特性和语法,所以为ES5编写了它。然而,它仍然不起作用。有人知道在一个非常古老的遗留项目上可以做什么或修复什么吗。我确实尝试了Object.Assign的多边形填充

ES6:

ES5版本:

getQueryURLParams = function(pName) {

var urlObject = location.search
.slice(1)
.split('&')
.map(function(element ) { 
    return element.split('='); 
})
.reduce(function(obj, pair) {  

  const key = pair.map(decodeURIComponent)[0];
  const value = pair.map(decodeURIComponent)[1];

  return Object.assign({}, obj, { [key]: value });
}, {});

return urlObject[pName];
};

非常感谢您的建议。Object.assign在IE中不起作用,因为它不是ES5的一部分

在页面底部,有一个多边形填充

[键]:值

这也不是有效的ES5

你可以直接写

var result = {}
Object.keys(obj).forEach(function(k){
    result[k] = obj[k];
})
result[key] = value;

return result;
var result = {}
Object.keys(obj).forEach(function(k){
    result[k] = obj[k];
})
result[key] = value;

return result;