소스 검색

fix inner iframe

jihuaqiang 2 년 전
부모
커밋
abe46dd757
3개의 변경된 파일25개의 추가작업 그리고 3개의 파일을 삭제
  1. 5 1
      src/entry/content.js
  2. 8 2
      src/logic/content/twitter.js
  3. 12 0
      src/uilts/help.js

+ 5 - 1
src/entry/content.js

@@ -37,7 +37,8 @@ import {
     refreshTabGroup,
     groupTipsSelectGroupTab,
     TwitterApiUserByScreenName,
-    showPublishDialog
+    showPublishDialog,
+    getExtensionStorgeDataForIframe
 } from "@/logic/content/twitter.js";
 
 import { httpBackToContentCallBack } from '@/uilts/chromeExtension.js'
@@ -114,6 +115,9 @@ window.onmessage = (res) => {
             case 'IFRAME_PAGE_JUMP':
                 pageJumpHandler(res.data.data);
                 break;
+            case 'IFRAME_GET_EXTENSION_STORGE_DATA':
+                getExtensionStorgeDataForIframe(res.data.data);
+                break;
         }
     }
 };

+ 8 - 2
src/logic/content/twitter.js

@@ -1,5 +1,5 @@
 import { getChromeStorage, setChromeStorage } from '@/uilts/chromeExtension.js'
-import { throttle, getQueryString, getCookie, nextTick, getQueryStringByUrl } from '@/uilts/help'
+import { throttle, getQueryString, getCookie, nextTick, getQueryStringByUrl, getInnerIframeURL } from '@/uilts/help'
 import { discordAuthRedirectUri, iframeHost } from '@/http/configAPI'
 import { reportSrcPublishEvent } from '@/http/publishApi'
 import Report from "@/log-center/log"
@@ -2388,7 +2388,7 @@ const addTabGroupContent = (cb) => {
     }
     let iframe = document.createElement('iframe');
     iframe.id = 'de-tab-group-content';
-    iframe.src = `${iframeHost}/tab-group` + `?params=${JSON.stringify(params)}`;
+    iframe.src = getInnerIframeURL(`${iframeHost}/tab-group` + `?params=${JSON.stringify(params)}&iframeID=${iframe.id}`);
     iframe.style.cssText = `border: medium none; height: 500px;display: none`
 
     let iframeContent = getGroupTabContentNode();
@@ -2594,3 +2594,9 @@ export const showPublishDialog = () => {
         smallBtn.click();
     }
 }
+
+export const getExtensionStorgeDataForIframe = (data) => {
+    getChromeStorage(data.key).then((res) => {
+        messageCenter.send(data.iframeID, `IFRAME_GET_EXTENSION_STORGE_DATA-${data.messageID}`, res)
+    });
+}

+ 12 - 0
src/uilts/help.js

@@ -1,3 +1,5 @@
+import { appVersionCode } from '@/http/configAPI.js'
+
 export function getQueryString(name) {
   let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
   let r = window.location.search.substr(1).match(reg);
@@ -265,4 +267,14 @@ export function $(key, cache = true) {
     }
   }
   return _dom
+}
+
+export const getInnerIframeURL = (url) => { 
+  let iframeUrl = url;
+  if (url.includes('?')) {
+    iframeUrl += `&appVersionCode=${appVersionCode}`;
+  } else { 
+    iframeUrl += `?appVersionCode=${appVersionCode}`;
+  }
+  return iframeUrl;
 }