From 6abafd413c637acf7a7c77cf68a19260c0d33baf Mon Sep 17 00:00:00 2001 From: xyf-mac Date: Thu, 18 Nov 2021 22:41:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=A4=9A=E4=B8=AAiframe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/src/background.ts | 24 +++++- source/src/core/types.ts | 1 + source/src/devtools/ui/index.vue | 129 +++++++++++++++---------------- 3 files changed, 82 insertions(+), 72 deletions(-) diff --git a/source/src/background.ts b/source/src/background.ts index ef7338a..f17b9cb 100644 --- a/source/src/background.ts +++ b/source/src/background.ts @@ -85,10 +85,21 @@ class PortMan { this._updateFrames(); // 当devtools链接后,主动派发frames数据 this.onPortConnect(port, (data: PluginEvent) => { - // 从devtools过来的消息统一派发到Content中 - if (PluginEvent.check(data, Page.Devtools, Page.Background)) { - PluginEvent.reset(data, Page.Background, Page.Content); - this.getCurrentUseContent()?.postMessage(data) + if (data.msg === Msg.UseFrame) { + this.currentUseContentFrameID = data.data; + // 更新这个frame的tree + this.updateCurrentFrameTree(); + } else { + // 从devtools过来的消息统一派发到Content中 + if (PluginEvent.check(data, Page.Devtools, Page.Background)) { + if (data.msg === Msg.TreeInfo) { + if (this.currentUseContentFrameID !== data.data) { + console.log(`frameID[${data.data}]不一致`); + } + } + PluginEvent.reset(data, Page.Background, Page.Content); + this.getCurrentUseContent()?.postMessage(data) + } } }, () => { @@ -100,6 +111,11 @@ class PortMan { } } + private updateCurrentFrameTree() { + const sendData = new PluginEvent(Page.Background, Page.Content, Msg.TreeInfo); + this.getCurrentUseContent()?.postMessage(sendData); + } + checkValid() { if (!this.devtools && !this.content.length) { this.mgr?.remove(this); diff --git a/source/src/core/types.ts b/source/src/core/types.ts index a631a6c..c27017e 100644 --- a/source/src/core/types.ts +++ b/source/src/core/types.ts @@ -15,6 +15,7 @@ export enum Msg { TabsInfo = "tabs_info", // 当前页面信息 GetTabID = "GetTabID", // 获取页面ID UpdateFrames = "UpdateFrames", // 更新页面的frame + UseFrame = "UseFrame", GetObjectItemData = "GetObjectItemData", SetProperty = "set-property", // 设置node属性 UpdateProperty = "update-property", // 更新属性 diff --git a/source/src/devtools/ui/index.vue b/source/src/devtools/ui/index.vue index a648f75..798078a 100644 --- a/source/src/devtools/ui/index.vue +++ b/source/src/devtools/ui/index.vue @@ -1,6 +1,6 @@