From 798f3437b92872648f7bda19cf2ad0a6aa4e178c Mon Sep 17 00:00:00 2001 From: bloody-ux Date: Thu, 5 Nov 2020 15:37:26 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix=20the=20issue=20we=20can't?= =?UTF-8?q?=20detect=20document.createElement=20while=20qiankun=20run=20in?= =?UTF-8?q?=20another=20sandbox=20while=20may=20rewrite=20document(#1046)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sandbox/patchers/dynamicAppend/forStrictSandbox.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sandbox/patchers/dynamicAppend/forStrictSandbox.ts b/src/sandbox/patchers/dynamicAppend/forStrictSandbox.ts index 6d84671..d046c09 100644 --- a/src/sandbox/patchers/dynamicAppend/forStrictSandbox.ts +++ b/src/sandbox/patchers/dynamicAppend/forStrictSandbox.ts @@ -27,7 +27,9 @@ function patchDocumentCreateElement() { ): HTMLElement { const element = rawDocumentCreateElement.call(this, tagName, options); if (isHijackingTag(tagName)) { - const attachProxy = documentAttachProxyMap.get(this); + // 这里使用document来获取比this更加健壮,因为之前set的时候是传入的document: + // 因为document不一定是原生的document,这种情况出现在qiankun本身就在另一个沙箱下运行的情况,而那个沙箱可能连document都重写了。 + const attachProxy = documentAttachProxyMap.get(document); if (attachProxy) { const proxyContainerConfig = proxyAttachContainerConfigMap.get(attachProxy); if (proxyContainerConfig) {