我的代码
let url = new URL('http://www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5');
let searchParams = new URLSearchParams(url.search);
console.log(searchParams.get('c')); // outputs "m2-m3-m4-m5"
和错误
未捕获的TypeError:URL不是构造函数
答案 0 :(得分:2)
任何最新版本的Chrome(至少从2014年的v32起)会导致此错误的唯一原因是,您是否有其他代码覆盖了URL
符号。 / p>
例如
const URL = 'I am now a string'
// later...
let url = new URL('http://www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5');
如果您在查找覆盖URL
的代码时遇到麻烦,可以先添加
console.log(URL)
您的代码。记录的值可能会给您提示。否则,请看这篇文章〜How to know in which file that defined a js global var in chrome console?
解决方案:
最后一点,您可以避免这样的问题
(function() {
const URL = 'I am a string but not window.URL'
// later...
let url = new window.URL('http://www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5');
console.info(url.search)
})()
答案 1 :(得分:0)
发生此问题是因为url.URL
是undefined
(在此comment中了解更多)。