vue使用iframe嵌入网页的示例代码


Posted in Javascript onJune 09, 2020

1、列表页面:

this.$router.push({ name: 'userTemplate', params: { reportUrl: reportUrl, reportType: reportType }})

点击查看后触发事件,带入参数跳转到userTemplate页面;reportType有两种类型,0表示reportUrl是绝对网址,1表示reportUrl是本地html文件。

2、userTemplate页面:

<template>
 <div> 
  <iframe v-if="reportType==0" name = "child" id = "child" v-bind:src="reportUrl"
  width="auto" height="300"
   frameborder="0" scrolling="no" style="position:absolute;top:80px;left: 30px;"
  ></iframe>
 
 <div v-if="reportType==1" v-html="htmlContent"
 width="auto" height="300" scrolling="no" style="position:absolute;top:80px;left: 30px;"></div>
 
 </div>
</template>
 
<script>
import {
 getFile
} from '@/api/report'
export default {
 mounted() {
  /**
   * iframe-宽高自适应显示
   */
  function changeMobsfIframe() {
   const mobsf = document.getElementById('child')
   const deviceWidth = document.body.clientWidth
   const deviceHeight = document.body.clientHeight
   mobsf.style.width = (Number(deviceWidth) - 30) + 'px' // 数字是页面布局宽度差值
   mobsf.style.height = (Number(deviceHeight) - 80) + 'px' // 数字是页面布局高度差
  }
 
  changeMobsfIframe()
 
  window.onresize = function() {
   changeMobsfIframe()
  }
 },
 
 data() {
  return {
   htmlContent: '',
   reportUrl: '',
   reportType: ''
  }
 },
 created() {
  // this.fileName = '../static/file/' + this.$route.params.report_url
  this.reportUrl = this.$route.params.reportUrl
  this.reportType = this.$route.params.reportType
  if (this.reportType == 1) {
   getFile(this.reportUrl).then(res => {
    if (res.code === 200) {
     this.htmlContent = res.data
    }
   })
  }
 }
}
</script>
 
<style rel="stylesheet/scss" lang="scss" scoped>
 
</style>

后端getFile:

//读取文件
 @RequestMapping("/getFile")
  @ResponseBody
 public HttpResult getFile(String reportUrl){
  StringBuilder result = new StringBuilder();
     try{
     
     FileSystemResource resource = new FileSystemResource("D:"+File.separator+"test"+File.separator+reportUrl);
     File file = resource.getFile();
       BufferedReader br = new BufferedReader(new FileReader(file));
       String s = null;
       while((s = br.readLine())!=null){
         result.append(System.lineSeparator()+s);
       }
       br.close();  
       return HttpResult.getSuccessInstance(result);
     }catch(Exception e){
       e.printStackTrace();
       return HttpResult.getFailedInstance("读取异常");
     } 
 }

 到此这篇关于vue使用iframe嵌入网页的示例代码的文章就介绍到这了,更多相关vue使用iframe嵌入网页内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript操作文本框readOnly
May 15 Javascript
jquery 无限级下拉菜单的简单实现代码
Feb 21 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
Jun 23 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
Aug 12 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
Apr 12 Javascript
javascript实现下拉提示选择框
Dec 29 Javascript
jQuery插件之validation插件
Mar 29 jQuery
JavaScript Array对象使用方法解析
Sep 24 Javascript
vue cli3 配置proxy代理无效的解决
Oct 30 Javascript
微信小程序实现吸顶效果
Jan 08 Javascript
vue prop传值类型检验方式
Jul 30 Javascript
vue实现简单全选和反选功能
Sep 15 Javascript
JavaScript实现区块链
Mar 14 #Javascript
iview table render集成switch开关的实例
Mar 14 #Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
Mar 14 #Javascript
Vue.js 动态为img的src赋值方法
Mar 14 #Javascript
基于datepicker定义自己的angular时间组件的示例
Mar 14 #Javascript
vue 过滤器filter实例详解
Mar 14 #Javascript
vue页面切换到滚动页面显示顶部的实例
Mar 13 #Javascript
You might like
Discuz 5.0 中读取纯真IP数据库函数分析
2007/03/16 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
javascript类继承机制的原理分析
2009/09/12 Javascript
javascript动画之圆形运动,环绕鼠标运动作小球
2010/07/20 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
60个很实用的jQuery代码开发技巧收集
2014/12/15 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
举例详解Python中yield生成器的用法
2015/08/05 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
windows下python安装pip图文教程
2018/05/25 Python
python中join()方法介绍
2018/10/11 Python
python实现图片转字符小工具
2019/04/30 Python
Python 最强编辑器详细使用指南(PyCharm )
2019/09/16 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
2020/03/27 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
python文件编写好后如何实践
2020/07/07 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
Linux的主要特性
2016/09/03 面试题
银行员工职业规划范文
2014/01/21 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
悬空寺导游词
2015/02/05 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书