PUGE 2 miesięcy temu
rodzic
commit
fc4ace8a5d
1 zmienionych plików z 27 dodań i 3 usunięć
  1. 27 3
      content-script.js

+ 27 - 3
content-script.js

@@ -44,6 +44,7 @@ function assistLoad(itemId) {
         }, '*');
     };
     function sendCallBack(callBackID, value) {
+        if (!event.data.callBackID) return
         iframe.contentWindow.postMessage({
             type: "callBack",
             value,
@@ -70,10 +71,33 @@ function assistLoad(itemId) {
         switch (event.data.type) {
             // assistMsg('click','#shi')
             case "click":
-                if (typeof event.data.value === "string") {
-                    document.querySelector(event.data.value).click()
+                if (typeof event.data.target === "string") {
+                    if (document.querySelector(event.data.target)) {
+                        document.querySelector(event.data.target).click()
+                        sendCallBack(event.data.callBackID, {"err": 0})
+                    } else {
+                        sendCallBack(event.data.callBackID, {"err": 1, "msg": "元素不存在!"})
+                    }
+                    
+                } else {
+                    if (document.querySelectorAll(event.data.target[0])[event.data.target[1]]) {
+                        document.querySelectorAll(event.data.target[0])[event.data.target[1]].click()
+                        sendCallBack(event.data.callBackID, {"err": 0})
+                    } else {
+                        sendCallBack(event.data.callBackID, {"err": 1, "msg": "元素不存在!"})
+                    }
+                }
+                
+                break;
+            case "setValue":
+                const domTemp = document.querySelector(event.data.target)
+                if (domTemp) {
+                    domTemp.value = event.data.value
+                    // 触发 `input` 事件,让 Vue/React 或监听的代码能检测到变化
+                    domTemp.dispatchEvent(new Event("input", { bubbles: true }));
+                    sendCallBack(event.data.callBackID, {"err": 0})
                 } else {
-                    document.querySelectorAll(event.data.value[0])[event.data.value[1]].click()
+                    sendCallBack(event.data.callBackID, {"err": 1, "msg": "元素不存在!"})
                 }
                 
                 break;