vue框架中使用iframe内嵌网页,并且双击实现网页全屏放大

vue框架中使用iframe内嵌网页,并且双击实现网页全屏放大

利用Iframe插入网页

<iframe ref="iframe" src="https://www.taobao.com" frameborder="0" scolling="no"></iframe>

如果出现网页拒绝访问的情况可能与跨域有关,我在一开始的时候使用百度网址也被拒绝访问,后用淘宝网址嵌入成功。frameborder=0是不要边框, scolling="no"是不需要侧边滚动条,如有需要自行修改


双击实现iframe内嵌网页的双击放大过程

这个地方在实现过程中出现了很多问题,一开始想使用

this.$refs.iframe.width = document.documentElement.clientwidth
this.$refs.iframe.height = document.documentElement.clientheight

获取页面的值来实现全屏显示,但是后面运行代码时发现无法实现,原因如下:
打开的标签页中不只包含一个页面,iframe指向页面的document.documentElement.clientWidth不再等于浏览器宽度,而是等于iframe的宽度
https://www.cnblogs.com/nov5026/p/4630499.html


具体实现

template部分

        <div class="Test">
            <i class="el-icon-plus" @dbclick="fullScreen"></i>
            <iframe ref="iframe" src="https://www.taobao.com" frameborder="0" scolling="no"
              :style="{ width: isFullScreen ? '100%' : width, height: isFullScreen ? '100%' : height, backgroundColor: black }">
            </iframe>
        </div>

data部分

data(){
  return{
    isFullScreen: false,
  }
}

beforedestroy部分

document.removeEventListener('fullscreenchange', this.fullscreenchange)

mounted部分

document.addEventListener('fullscreenchange', this.fullscreenchange)

methods部分

    fullscreenchange(e) {
      if (document.fullscreenElement == null) {
        this.isFullScreen = false
      }
    },
    fullScreen() {
      if (this.isFullScreen) {
        document.webkitCancelFullScreen()
      } else {
        this.$refs.iframe.requestFullscreen()
      }
      this.isFullScreen = !this.isFullScreen
    },

希望自己多多学习,坚持记录问题和解决办法 加油!(这是第一次使用markdown,感觉还不错啊~)

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue实现组件全屏显示的方法有两种。第一种方法是使用F11键切换全屏,这是一种浏览器原生支持的方式。用户可以按下F11键来切换全屏显示。第二种方法是使用requestFullscreen()方法来实现全屏显示。但需要注意以下几点: 1. document下没有requestFullscreen方法。 2. requestFullscreen方法只能由用户触发,不能在onload事件触发。 3. 在页面跳转之前,需要先退出全屏。 4. 进入全屏后,元素将脱离其父元素,可能导致之前某些CSS的失效。为解决这个问题,可以使用:full-screen伪类为元素添加全屏时的样式。 5. 如果一个元素A全屏后,其子元素也要全屏,需要先让元素A退出全屏。 在Vue,可以在组件使用以下代码来实现全屏显示: ```javascript import screenFull from 'screenfull'; // 导入screenFull库 // 在组件定义一个方法来实现全屏切换 const handleFullscreen = () => { if (screenFull.isEnabled) { // 判断浏览器是否支持全屏 screenFull.toggle(); // 切换全屏状态 } } // 在需要全屏显示的组件,可以通过点击事件或其他触发方式调用handleFullscreen方法 ``` 以上代码,我们首先导入了screenFull库,然后定义了一个方法handleFullscreen来切换全屏状态。在需要全屏显示的组件,可以通过点击事件或其他触发方式调用handleFullscreen方法来实现全屏显示。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vue 组件化-全屏](https://blog.csdn.net/m0_71933813/article/details/129226033)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue全屏组件](https://blog.csdn.net/hjh15827475896/article/details/123370093)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值