https://github.com/WebReflection/url-search-params
Simple polyfill for URLSearchParams standard
https://github.com/WebReflection/url-search-params
polyfill urlsearchparams
Last synced: 9 months ago
JSON representation
Simple polyfill for URLSearchParams standard
- Host: GitHub
- URL: https://github.com/WebReflection/url-search-params
- Owner: WebReflection
- License: mit
- Archived: true
- Created: 2015-05-28T11:16:46.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2018-11-26T09:49:26.000Z (about 7 years ago)
- Last Synced: 2024-05-22T20:32:25.185Z (over 1 year ago)
- Topics: polyfill, urlsearchparams
- Language: JavaScript
- Size: 89.8 KB
- Stars: 764
- Watchers: 16
- Forks: 91
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
url-search-params
=================
[](http://travis-ci.org/WebReflection/url-search-params) [](https://cdnjs.com/libraries/url-search-params) [](https://github.com/WebReflection/donate)
# Deprecated
This polyfill has been improved, better tested, and moved under the [ungap](https://ungap.github.io) umbrella.
The new version is available as [@ungap/url-search-params](https://github.com/ungap/url-search-params).
- - -
This is a polyfill for the [URLSearchParams API](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams).
It is possible to simply include [build/url-search-params.js](build/url-search-params.js) or grab it via npm.
```
npm install url-search-params
```
The function is exported directly.
```js
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.
```html
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 links supported
}
```
If you do this check instead:
```js
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](http://webreflection.blogspot.co.uk/2011/08/please-stop-reassigning-for-no-reason.html).