瀏覽代碼

added onOptionsAvailable callback for javascript for

AUTOMATIC1111 1 年之前
父節點
當前提交
d2097dbdd9
共有 2 個文件被更改,包括 16 次插入0 次删除
  1. 1 0
      javascript/ui.js
  2. 15 0
      script.js

+ 1 - 0
javascript/ui.js

@@ -299,6 +299,7 @@ onAfterUiUpdate(function() {
     var jsdata = textarea.value;
     opts = JSON.parse(jsdata);
 
+    executeCallbacks(optionsAvailableCallbacks); /*global optionsAvailableCallbacks*/
     executeCallbacks(optionsChangedCallbacks); /*global optionsChangedCallbacks*/
 
     Object.defineProperty(textarea, 'value', {

+ 15 - 0
script.js

@@ -29,6 +29,7 @@ var uiAfterUpdateCallbacks = [];
 var uiLoadedCallbacks = [];
 var uiTabChangeCallbacks = [];
 var optionsChangedCallbacks = [];
+var optionsAvailableCallbacks = [];
 var uiAfterUpdateTimeout = null;
 var uiCurrentTab = null;
 
@@ -77,6 +78,20 @@ function onOptionsChanged(callback) {
     optionsChangedCallbacks.push(callback);
 }
 
+/**
+ * Register callback to be called when the options (in opts global variable) are available.
+ * The callback receives no arguments.
+ * If you register the callback after the options are available, it's just immediately called.
+ */
+function onOptionsAvailable(callback) {
+    if (Object.keys(opts).length != 0) {
+        callback();
+        return;
+    }
+
+    optionsAvailableCallbacks.push(callback);
+}
+
 function executeCallbacks(queue, arg) {
     for (const callback of queue) {
         try {