VUE页面中加载外部HTML的示例代码


Posted in Javascript onSeptember 20, 2017

前后端分离,后端提供了接口。但有一部分数据,比较产品说明文件,是存在其他的服务器上的。

所以,在页面显示的时候,如果以页面内嵌的形式显示这个说明文件。需要搞点事情以达到想要的效果。

不同以往的IFRAME标签,那种方式比较Low,另外有其他的一些BUG。

本文思路是把HTML请求以来,以v-html的形式加载到页面内部。注册全局组件【v-html-panel】

1.HtmlPanel.vue文件

<template>
 <div>
  <mu-circular-progress :size="40" v-if="loading"/>
  <div v-html="html"></div>
 </div>
</template>
<style>

</style>
<script>
 export default{
  // 使用时请使用 :url.sync=""传值
  props: {
   url: {
    required: true
   }
  },
  data () {
   return {
    loading: false,
    html: ''
   }
  },
  watch: {
   url (value) {
    this.load(value)
   }
  },
  mounted () {
   this.load(this.url)
  },
  methods: {
   load (url) {
    if (url && url.length > 0) {
     // 加载中
     this.loading = true
     let param = {
      accept: 'text/html, text/plain'
     }
     this.$http.get(url, param).then((response) => {
      this.loading = false
      // 处理HTML显示
      this.html = response.data
     }).catch(() => {
      this.loading = false
      this.html = '加载失败'
     })
    }
   }
  }
 }
</script>

htmlViewSample.vue

<template>
 <div>
  <v-html-panel :url.asyc="url1"></v-html-panel>
  <v-html-panel :url.asyc="url2"></v-html-panel>
 </div>
</template>
<style scoped>
 div{color:red}
</style>
<script>
 export default{
  data () {
   return {
    url1: '',
    url2: ''
   }
  },
  mounted () {
   this.url1 = 'http://file.xxx.com/group1/M00/0C/F5/xxxxxxxx.html'
   this.url2 = 'http://file.xxx.com/group1/M00/0D/3B/yyyyyyy.html'
  },
  methods: {
  }
 }
</script>

上一张效果图

VUE页面中加载外部HTML的示例代码

注意事项:

  • 直接使用axios处理的GET请求,需要处理跨域
  • 外部的css样式会作用到显示的html
  • 同时加载的外部html里的script也可能会执行,需要按需处理下
  • 外部HTML文件内部的相对路径将不会被自动识别,绝对路径可以

NGINX跨域配置:

(Origin如果使用*的话,好像会出错,这里直接使用请求源的地址,如果担心安全性的话,可以用if+正则条件判断下)

location / {
  add_header Access-Control-Allow-Origin $http_origin;
  add_header Access-Control-Allow-Credentials true;
  add_header Access-Control-Allow-Methods GET;

  access_log /data/nginx/logs/fdfs_https.log main;

  ...
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
Apr 20 Javascript
javascript vvorld 在线加密破解方法
Nov 13 Javascript
Jquery 组合form元素为json格式,asp.net反序列化
Jul 09 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
Feb 13 Javascript
超精准的javascript验证身份证号的具体实现方法
Nov 18 Javascript
JavaScript缓冲运动实现方法(2则示例)
Jan 08 Javascript
轻松实现javascript图片轮播特效
Jan 13 Javascript
获取阴历(农历)和当前日期的js代码
Feb 15 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
Sep 30 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
Feb 09 Javascript
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 jQuery
Vue组件化(ref,props, mixin,.插件)详解
May 15 Vue.js
JavaScript实现焦点进入文本框内关闭输入法的核心代码
Sep 20 #Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 #Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
Sep 20 #Javascript
用vue构建多页面应用的示例代码
Sep 20 #Javascript
微信小程序request请求后台接口php的实例详解
Sep 20 #Javascript
微信小程序 input表单与redio及下拉列表的使用实例
Sep 20 #Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
Sep 20 #Javascript
You might like
SMARTY学习手记
2007/01/04 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
php 流程控制switch的简单实例
2016/06/07 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
关于extjs4如何获取grid修改后的数据的问题
2013/08/07 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
基于JS实现仿京东搜索栏随滑动透明度渐变效果
2017/07/10 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
python算法表示概念扫盲教程
2017/04/13 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
python创建n行m列数组示例
2019/12/02 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
工程预算与管理应届生求职信
2013/10/06 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
幼儿园中秋节活动方案2013
2014/01/29 职场文书
学校联谊活动方案
2014/02/15 职场文书
2014学年自我鉴定
2014/02/23 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
禁毒宣传标语
2014/06/19 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
大学毕业生个人总结
2015/02/28 职场文书
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang