From d8603e1a3559d02a4dc10bf548a4b44703fcd69b Mon Sep 17 00:00:00 2001 From: zzs Date: Wed, 19 Mar 2025 19:16:55 +0800 Subject: [PATCH] wip: use weboffice --- src/components/IFrame/src/IFrame.vue | 23 +++++- src/views/infra/filePreview/index.vue | 105 +++++++++++++++++++++++++- 2 files changed, 124 insertions(+), 4 deletions(-) diff --git a/src/components/IFrame/src/IFrame.vue b/src/components/IFrame/src/IFrame.vue index d0bcb6c..48fb240 100644 --- a/src/components/IFrame/src/IFrame.vue +++ b/src/components/IFrame/src/IFrame.vue @@ -9,10 +9,9 @@ const props = defineProps({ }, }) const loading = ref(true) -const height = ref('') -const frameRef = ref(null) +const height = ref('') +const frameRef = ref(null) function init() { - console.warn(height.value) if (!props.height) height.value = `${document.documentElement.clientHeight - 94.5}px` else @@ -25,6 +24,24 @@ onMounted(() => { init() }, 300) }) + +function sendMessageToIframe(message) { + if (frameRef.value && frameRef.value.contentWindow) + frameRef.value.contentWindow.postMessage(message, '*') +} + +defineExpose({ + sendMessageToIframe, +}) + +onMounted(() => { + // 监听响应 + window.addEventListener('message', (event) => { + // 处理响应 + if (event.data) + console.log(event.data) + }) +})