Commit c063289b21a735d77e308eb0e1b14b89fab03e06

Authored by 田强
1 parent 0dc82bc2

feat: remove umi socket dom

... ... @@ -28,10 +28,11 @@
28 28 v-if="DEVELOPER_MODE == 1 && filterDebuggerApps.length"
29 29 @click="end"
30 30 >
31   - <VideoPause
32   - style="width: 1em; height: 1em; margin-right: 8px"
33   - />关闭调试</el-button
34   - >
  31 + <VideoPause style="width: 1em; height: 1em; margin-right: 8px" />
  32 + <el-tooltip content="关闭调试模式,会同步关闭开发者模式" placement="">
  33 + 关闭调试
  34 + </el-tooltip>
  35 + </el-button>
35 36 <el-button v-else @click="start"
36 37 ><VideoPlay style="width: 1em; height: 1em; margin-right: 8px" />
37 38 开启调试</el-button
... ... @@ -42,19 +43,19 @@
42 43 </template>
43 44
44 45 <script setup>
45   -import { reactive, ref, computed } from "vue";
  46 +import { reactive, ref, computed, watchEffect } from "vue";
46 47
47 48 const { sessionStorage } =
48 49 chrome.extension.getBackgroundPage().backgroundState || {};
49 50
50   -const defaultApps = '[{"name":"","entry":""}]';
  51 +const defaultApps = [{ name: "", entry: "" }];
51 52
52 53 const sessionDebuggerApps = JSON.parse(
53   - sessionStorage.QX_DEBUG_APPS || defaultApps
  54 + sessionStorage.QX_DEBUG_APPS || JSON.stringify(defaultApps)
54 55 );
55 56
56 57 const QX_DEBUG_APPS = reactive(
57   - JSON.parse(sessionDebuggerApps.length ? sessionDebuggerApps : defaultApps)
  58 + sessionDebuggerApps.length ? sessionDebuggerApps : defaultApps
58 59 );
59 60
60 61 const filterDebuggerApps = computed(() =>
... ...
... ... @@ -3,11 +3,14 @@
3 3 </template>
4 4
5 5 <script setup>
  6 +import { onMounted } from "vue";
  7 +
6 8 const DEVELOPER_MODE = window.sessionStorage.getItem("DEVELOPER_MODE") === "1";
7 9 const QX_DEBUG_APPS = JSON.parse(
8 10 window.sessionStorage.getItem("QX_DEBUG_APPS") || "[]"
9 11 );
10 12 const text = DEVELOPER_MODE && QX_DEBUG_APPS.length ? "调试中" : "开发模式";
  13 +
11 14 const style = {
12 15 background:
13 16 "linear-gradient(to right, rgba(62, 142, 245, 0.6), rgb(62, 142, 245))",
... ... @@ -26,6 +29,42 @@ const style = {
26 29 cursor: "default",
27 30 boxShadow: "rgba(62, 142, 245, 0.2) 0px 0px 5px",
28 31 };
  32 +
  33 +function callback(mutationList, observer) {
  34 + mutationList.forEach((mutation) => {
  35 + switch (mutation.type) {
  36 + case "childList":
  37 + /* 从树上添加或移除一个或更多的子节点;参见 mutation.addedNodes 与
  38 + mutation.removedNodes */
  39 + console.log("mutation", mutation);
  40 + const nodes = mutation.addedNodes;
  41 + nodes.forEach((node) => {
  42 + if (
  43 + (node.innerText =
  44 + "Disconnected from the devServer, trying to reconnect...")
  45 + ) {
  46 + node.parentNode.removeChild(node);
  47 + }
  48 + });
  49 + break;
  50 + case "attributes":
  51 + /* mutation.target 中某节点的一个属性值被更改;该属性名称在 mutation.attributeName 中,
  52 + 该属性之前的值为 mutation.oldValue */
  53 + break;
  54 + }
  55 + });
  56 +}
  57 +
  58 +onMounted(() => {
  59 + var targetNode = document.body;
  60 + var observerOptions = {
  61 + childList: true, // 观察目标子节点的变化,是否有添加或者删除
  62 + attributes: true, // 观察属性变动
  63 + subtree: false, // 观察后代节点,默认为 false
  64 + };
  65 + var observer = new MutationObserver(callback);
  66 + observer.observe(targetNode, observerOptions);
  67 +});
29 68 </script>
30 69
31 70 <style>
... ...
... ... @@ -2,11 +2,8 @@ import { createApp } from "vue";
2 2 import App from "./App.vue";
3 3
4 4 const DEVELOPER_MODE = window.sessionStorage.getItem("DEVELOPER_MODE") === "1";
5   -const QX_DEBUG_APPS = JSON.parse(
6   - window.sessionStorage.getItem("QX_DEBUG_APPS") || "[]"
7   -);
8 5
9   -if (DEVELOPER_MODE || QX_DEBUG_APPS.length) {
  6 +if (DEVELOPER_MODE) {
10 7 const app = createApp(App);
11 8
12 9 const injectBody = document.createElement("div");
... ...