kopia lustrzana https://github.com/backface/turtlestitch
added script-loading extension primitive
rodzic
0decdec455
commit
9515082721
|
@ -9,7 +9,10 @@
|
|||
* **Notable Fixes:**
|
||||
* fixed occasional invisible error messages
|
||||
|
||||
### 2021-06-19
|
||||
### 2021-06-22
|
||||
* extensions: added script-loading extension primitive
|
||||
|
||||
### 2021-06-20
|
||||
* updated extensions documentation
|
||||
|
||||
### 2021-06-19
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<script src="src/sketch.js?version=2020-07-13"></script>
|
||||
<script src="src/video.js?version=2019-06-27"></script>
|
||||
<script src="src/maps.js?version=2021-06-15"></script>
|
||||
<script src="src/extensions.js?version=2021-06-20"></script>
|
||||
<script src="src/extensions.js?version=2021-06-22"></script>
|
||||
<script src="src/xml.js?version=2020-04-27"></script>
|
||||
<script src="src/store.js?version=2021-06-10"></script>
|
||||
<script src="src/locale.js?version=2021-06-11"></script>
|
||||
|
|
|
@ -31,13 +31,14 @@
|
|||
IDE_Morph, CamSnapshotDialogMorph, SoundRecorderDialogMorph, isSnapObject, nop,
|
||||
Color, contains*/
|
||||
|
||||
modules.extensions = '2021-June-20';
|
||||
modules.extensions = '2021-June-22';
|
||||
|
||||
// Global stuff
|
||||
|
||||
var SnapExtensions = {
|
||||
primitives: new Map(),
|
||||
menus: new Map()
|
||||
menus: new Map(),
|
||||
scripts: []
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -108,6 +109,8 @@ var SnapExtensions = {
|
|||
Whatever you do, please use these extension capabilities sensibly.
|
||||
*/
|
||||
|
||||
// Primitives
|
||||
|
||||
// errors & exceptions (err_):
|
||||
|
||||
SnapExtensions.primitives.set(
|
||||
|
@ -674,6 +677,17 @@ SnapExtensions.primitives.set(
|
|||
}
|
||||
);
|
||||
|
||||
// loading external scripts (scr_)
|
||||
|
||||
SnapExtensions.primitives.set(
|
||||
'scr_load(url)',
|
||||
function (url) {
|
||||
return SnapExtensions.loadScript(url);
|
||||
}
|
||||
);
|
||||
|
||||
// Menus
|
||||
|
||||
SnapExtensions.menus.set(
|
||||
'clr_numbers', // Brian's browns and oranges, sigh...
|
||||
function () {
|
||||
|
@ -900,3 +914,22 @@ SnapExtensions.menus.set(
|
|||
}
|
||||
}
|
||||
);
|
||||
|
||||
// Scripts
|
||||
|
||||
SnapExtensions.loadScript = function (url) {
|
||||
var scriptElement,
|
||||
isLoaded = false;
|
||||
|
||||
if (contains(this.scripts, url)) {
|
||||
return () => true;
|
||||
}
|
||||
scriptElement = document.createElement('script');
|
||||
scriptElement.onload = () => {
|
||||
this.scripts.push(url);
|
||||
isLoaded = true;
|
||||
};
|
||||
document.head.appendChild(scriptElement);
|
||||
scriptElement.src = url;
|
||||
return () => isLoaded;
|
||||
};
|
||||
|
|
Ładowanie…
Reference in New Issue