File tree 2 files changed +16
-0
lines changed
2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -299,6 +299,7 @@ onAfterUiUpdate(function() {
299
299
var jsdata = textarea . value ;
300
300
opts = JSON . parse ( jsdata ) ;
301
301
302
+ executeCallbacks ( optionsAvailableCallbacks ) ; /*global optionsAvailableCallbacks*/
302
303
executeCallbacks ( optionsChangedCallbacks ) ; /*global optionsChangedCallbacks*/
303
304
304
305
Object . defineProperty ( textarea , 'value' , {
Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ var uiAfterUpdateCallbacks = [];
29
29
var uiLoadedCallbacks = [ ] ;
30
30
var uiTabChangeCallbacks = [ ] ;
31
31
var optionsChangedCallbacks = [ ] ;
32
+ var optionsAvailableCallbacks = [ ] ;
32
33
var uiAfterUpdateTimeout = null ;
33
34
var uiCurrentTab = null ;
34
35
@@ -77,6 +78,20 @@ function onOptionsChanged(callback) {
77
78
optionsChangedCallbacks . push ( callback ) ;
78
79
}
79
80
81
+ /**
82
+ * Register callback to be called when the options (in opts global variable) are available.
83
+ * The callback receives no arguments.
84
+ * If you register the callback after the options are available, it's just immediately called.
85
+ */
86
+ function onOptionsAvailable ( callback ) {
87
+ if ( Object . keys ( opts ) . length != 0 ) {
88
+ callback ( ) ;
89
+ return ;
90
+ }
91
+
92
+ optionsAvailableCallbacks . push ( callback ) ;
93
+ }
94
+
80
95
function executeCallbacks ( queue , arg ) {
81
96
for ( const callback of queue ) {
82
97
try {
You can’t perform that action at this time.
0 commit comments