gaoluyang
2025-05-20 c334c2d76c1b51d0fbe1531bf524e1b90f921a7c
src/layout/components/InnerLink/index.vue
@@ -1,30 +1,35 @@
<script>
export default {
  setup() {
    const route = useRoute();
    const link = route.meta.link;
    if (link === "") {
      return "404";
    }
    let url = link;
    const height = document.documentElement.clientHeight - 94.5 + "px";
    const style = { height: height };
<template>
  <div :style="'height:' + height" v-loading="loading" element-loading-text="正在加载页面,请稍候!">
    <iframe
      :id="iframeId"
      style="width: 100%; height: 100%"
      :src="src"
      ref="iframeRef"
      frameborder="no"
    ></iframe>
  </div>
</template>
    // 返回渲染函数
    return () =>
      h(
        "div",
        {
          style: style,
        },
        h("iframe", {
          src: url,
          frameborder: "no",
          width: "100%",
          height: "100%",
          scrolling: "auto",
        })
      );
<script setup>
const props = defineProps({
  src: {
    type: String,
    default: "/"
  },
};
  iframeId: {
    type: String
  }
})
const loading = ref(true)
const height = ref(document.documentElement.clientHeight - 94.5 + 'px')
const iframeRef = ref(null)
onMounted(() => {
  if (iframeRef.value) {
    iframeRef.value.onload = () => {
      loading.value = false
    }
  }
})
</script>