scriptloader
Absurdly simple on-demand script loader.
Installation
npm/browserify
$ npm install scriptloader
component
$ component install timoxley/scriptloader
API
var load = require('scriptloader')
load('//my-widget.js')
load('//remote.com/their-widget.js')
load('//cdnjs.cloudflare.com/ajax/libs/json3/3.2.4/json3.min.js').addEventListener('load', function() {
console.log('it is loaded')
})
load('//cdnjs.cloudflare.com/ajax/libs/json3/3.2.5/json3.min.js', function(err, script) {
console.log('it is loaded')
})
load(iframe.contentWindow.document, '//cdnjs.cloudflare.com/ajax/libs/json3/3.2.5/json3.min.js', function(err, script) {
console.log('it is loaded')
})
What is this sorcery?
scriptloader appends a script tag to your document.body with the src
attribute set to the script you desire to load.
Why not just domify to add a script tag?
Interesting problem. Unfortunately we can't use domify to do this
since <script> src attributes don't trigger remote loading
if they're created using innerHTML, which is how domify works.
TODO
- Consider removing
<script> after it loads?
- Investigate script's
async attribute.
Contributors
License
MIT