首页 > 其他分享 >vue中父元素动态获取iframe高度

vue中父元素动态获取iframe高度

时间:2022-12-04 16:12:23浏览次数:33  
标签:vue viewer iframeWin getElementById 中父 iframe document

背景:在vue开发中(不论是vue2还是vue3),我在页面中打印都可以拿到document.getElementById('iframe')的DOM节点,但就是在页面中不显示,需要等待iframe挂载上去,再进行响应的DOM操作,因此使用了setTimeout

例如:

<template>
  <iframe id="iframe" src="xxx" frameborder="0" class="iframe"></iframe>
</template>
<script>
  methods: {
    // 这里的viewer是iframe中的子元素,实际开发中我这里引入了pdfjs用来进行pdf在线展示,所以需要获取viewer的高度
    setIframeHeight(iframe) {
      let iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow
      if (iframeWin.document.getElementById('viewer')) {
        iframe.height = iframeWin.document.getElementById('viewer').scrollHeight
      }
    }
  },
  mounted() {
    let ths = this
    // 需要在iframe加载完成后调用该方法,或者在$nextTick中进行方法调用,看实际情况
    setTimeout(function() {
      ths.setIframeHeight(document.getElementById('iframe'))
    }, 1000)
  }
</script>

标签:vue,viewer,iframeWin,getElementById,中父,iframe,document
From: https://www.cnblogs.com/lhongsen/p/16950028.html

相关文章

  • 修改iframe里的css样式及跨域问题
    前段时间给一个客户制作网站在线客服的时候遇到一个问题,客户想尽量美化一下客服的框,而我们研究发现,客服框其实是iframe引用的外部资源。开始我们也天真地以为,自己写段代码,......
  • vue2PC端和移动端适配
    之前ui给pc端的设计稿是1920*1080,并没有提过要写移动端网站,所以之前一直做的是pc端。1,安装flexible和postcss-px2rem(命令行安装)npminstalllib-flexible--savenp......
  • Vue 中plugins插件的使用
    Vue中plugins插件的使用1:说明/*##插件1.功能:用于增强Vue2.本质:包含install方法的一个对象,install的第一个参数是Vue,第二个以后的参数是插件使用者传递的数据。3......
  • Vue 中 的 mixin 混入(合)
    Vue中的mixin混入(合)1:说明/*##mixin(混入)1.功能:可以把多个组件共用的配置提取成一个混入对象2.使用方式:第一步定义混合:```{dat......
  • vue_登录
    <template><!--根节点--><divclass="login-container"><divclass="login-form-wrap"><!--el-form表单组件每个表单项都必须......
  • 老板:你为什么要选择 Vue?
    大家好,我是Kagol,VueDevUI开源组件库和EditorX富文本编辑器创建者,专注于前端组件库建设和开源社区运营。假如你是团队的前端负责人,现在老板要拓展新业务,需要开发一个......
  • Vue-treeselect 实现下拉树懒加载,末节点不要箭头
    项目需要,可选择的下拉树,由于数据过多,显示要有层级感,所以使用了懒加载模式vue-treeselect官网:https://www.vue-treeselect.cn/1、前端代码1、下载依赖npminstall--sav......
  • Vue2(笔记16) - Vue核心 - 内置指令
    回顾下之前的指令:v-bind  :单向绑定解析表达式,可简写:xxxv-model:双向数据绑定;v-for   :遍历数组/对象/字符串v-on   :绑定事件监听,可简写 @v-if    :条件......
  • arco design vue 表单自定义验证
    不知道为啥,官方文档里竟然没写...直接上代码template里<a-form-itemfield="repeatPassword":rules="[{validator:validateRepeatPassword,trigger:'change'}]"......
  • Vue2(笔记15) - Vue核心 - 过滤器
    可学可不学,可用可不用过滤器需求:把一个时间戳格式化成可读的年月日时间;需要引入一个dayjs 的 JS库,专门用来处理时间的;​​dayjs在这可以下载​​<scriptsrc="./res/vue.......