product/node_modules/@soda/get-current-script
Ruikang Zhang e96405c650 Merge remote-tracking branch 'product/product' into product 2024-04-14 10:25:28 +08:00
..
.github/workflows Merge remote-tracking branch 'product/product' into product 2024-04-14 10:25:28 +08:00
fixtures Merge remote-tracking branch 'product/product' into product 2024-04-14 10:25:28 +08:00
.editorconfig Merge remote-tracking branch 'product/product' into product 2024-04-14 10:25:28 +08:00
LICENSE Merge remote-tracking branch 'product/product' into product 2024-04-14 10:25:28 +08:00
README.md Merge remote-tracking branch 'product/product' into product 2024-04-14 10:25:28 +08:00
nightwatch.conf.js Merge remote-tracking branch 'product/product' into product 2024-04-14 10:25:28 +08:00
package.json Merge remote-tracking branch 'product/product' into product 2024-04-14 10:25:28 +08:00

README.md

@soda/get-current-script CI

It is basically a function that returns document.currentScript but with support for IE9-11, thanks to https://github.com/amiller-gh/currentScript-polyfill.

It also works around a Firefox issue when the script is called in a microtask, which makes document.currentScript unusable in a webpack dynamic-imported chunk.

It is shipped as a utility function rather than a polyfill, because we can't easily tell if the document.currentScript is returning null due to the Firefox issue or because it's running in an event handler / a callback.

The implementation here may not adhere strictly to document.currentScript spec when called in async code or in a callback. In these situations the spec calls for document.currentScript to return null. However, for the grand majority of your document.currentScript needs, this utility will do the job!

Usage

npm i @soda/get-current-script
const getCurrentScript = require('@soda/get-current-script')
const script = getCurrentScript() // the current executing <script> element