This package has been deprecated

Author message:

now available as @ungap/url-search-params

DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/url-search-params package

1.1.0 • Public • Published


build status CDNJS version donate

This is a polyfill for the URLSearchParams API.

It is possible to simply include build/url-search-params.js or grab it via npm.

npm install url-search-params

The function is exported directly.

var URLSearchParams = require('url-search-params');

MIT Style License

iOS 10 + other platforms bug

In case you'd like to replace the broken global native constructor, you can check some well known issue before including this polyfill on your project/page.

try { if (new URLSearchParams('q=%2B').get('q') !== '+') throw {}; }
catch (error) {
  window.URLSearchParams = void 0;
  document.write('<script src="/js/url-search-params.js"><'+'/script>');

About HTMLAnchorElement.prototype.searchParams

This property is already implemented in Firefox and polyfilled here only for browsers that exposes getters and setters through the HTMLAnchorElement.prototype.

In order to know if such property is supported, you must do the check as such:

if ('searchParams' in HTMLAnchorElement.prototype) {
  // polyfill for <a> links supported

If you do this check instead:

if (HTMLAnchorElement.prototype.searchParams) {
  // throws a TypeError

this polyfill will reflect native behavior, throwing a type error due access to a property in a non instance of HTMLAnchorElement.

Nothing new to learn here, just a reminder.

Package Sidebar


npm i url-search-params

Weekly Downloads






Unpacked Size

48 kB

Total Files


Last publish


  • webreflection