Simple polyfill for URLSearchParams standard
JavaScript HTML Makefile
Clone or download
Andrea Giammarchi
Andrea Giammarchi 1.0.2
Latest commit e914021 Jul 3, 2018

README.md

url-search-params

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.

<script>
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>');
}
</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.