Skip to content

Commit f0a9d4c

Browse files
authored
Merge pull request #3 from eerikson/AllowArbitraryPropsOnScriptEl
Assign attrs to created script element
2 parents 518c0d2 + 2556a05 commit f0a9d4c

File tree

5 files changed

+2033
-2
lines changed

5 files changed

+2033
-2
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,16 @@ loadScript('https://example.com/script.js')
2525
})
2626
```
2727

28+
**Additional attributes**
29+
30+
```js
31+
var loadScript = require('tiny-script-loader/loadScript')
32+
var loadScriptPromised = require('tiny-script-loader/loadScriptPromised')
33+
34+
loadScript('https://example.com/script.js', callbackFn, { crossOrigin: true })
35+
loadScriptPromised('https://example.com/script.js', { type: 'javascript' })
36+
.then(fn)
37+
```
2838
## License
2939

3040
[Apache-2.0](/LICENSE)

loadScript.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
module.exports = function loadScript (src, cb) {
1+
module.exports = function loadScript (src, cb, attrs) {
22
var doc = document
33
var tag = 'script'
44
var firstScript
55
var el
66
el = doc.createElement(tag)
77
firstScript = doc.getElementsByTagName(tag)[0]
8+
if (attrs) {
9+
Object.keys(attrs).forEach(function (key) {
10+
el[key] = attrs[key]
11+
})
12+
}
813
el.async = 1
914
el.src = src
1015
el.onload = function () { cb() }

loadScriptPromised.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
module.exports = function loadScriptPromised (src) {
1+
module.exports = function loadScriptPromised (src, attrs) {
22
var doc = document
33
var tag = 'script'
44
var firstScript
55
var el
66
return new Promise(function (resolve, reject) {
77
el = doc.createElement(tag)
88
firstScript = doc.getElementsByTagName(tag)[0]
9+
if (attrs) {
10+
Object.keys(attrs).forEach(function (key) {
11+
el[key] = attrs[key]
12+
})
13+
}
914
el.async = 1
1015
el.src = src
1116
el.onload = function () { resolve() }

0 commit comments

Comments
 (0)