javascript - IE 获取 URL 参数失败
问题描述
我有一个应该获取 URL 参数但仅在 IE(使用 11)中中断的函数。我最初认为这是因为一些较新的 ES6 特性和语法,所以为 ES5 编写了它。但是它仍然无法正常工作。有谁知道可以做什么或修复什么来使这项工作在一个非常古老的遗留项目上工作。我确实尝试了来自MDN的用于 Object.Assign 的 polyfill。
ES6:
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];
};
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 的一部分。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
在页面底部,有一个 polyfill
[key]: value
这也不是有效的 ES5。
你可以写
var result = {}
Object.keys(obj).forEach(function(k){
result[k] = obj[k];
})
result[key] = value;
return result;
推荐阅读
- jquery - 粘性标题 - 初始加载时显示 2 个徽标
- c++ - 可靠的忙等待 C++ 中的寄存器
- python - 如何在python中将“n”行转换为.csv?
- ruby-on-rails - 无法遍历对象的属性
- json - Azure 数据工厂 - 通过剥离日期时间来更改文件名
- c++ - 如何处理 make build 与 make install 的配置文件路径
- scala - Spark Scala - 如何从凌乱的 .txt 文件中创建 DF
- git - 无法使用 Powershell 静默安装 Git 扩展
- java - 按钮 continueButton 不起作用?如果我在 EditText 中有文本或制作 Toast,它应该启动新的 Activity
- typescript - 如何在primeng下拉列表中显示搜索结果