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 相关文章推荐
Prototype使用指南之range.js
Jan 10 Javascript
web基于浏览器的本地存储方法应用
Nov 27 Javascript
详解jquery中$.ajax方法提交表单
Nov 03 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
Dec 15 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
Jun 21 Javascript
plupload+artdialog实现多平台上传文件
Jul 19 Javascript
jquery实现界面无刷新加载登陆注册
Jul 30 Javascript
three.js绘制地球、飞机与轨迹的效果示例
Feb 28 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
Mar 13 Javascript
JSON与js对象序列化实例详解
Mar 16 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
JS实现点击按钮可实现编辑功能
Jul 03 Javascript
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
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
php session应用实例 登录验证
2009/03/16 PHP
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
PHP中的函数-- foreach()的用法详解
2013/06/24 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
JS 控制CSS样式表
2009/08/20 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
jquery.mobile 共同布局遇到的问题小结
2015/02/10 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
2016/04/27 Javascript
canvas绘制多边形
2017/02/24 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
Python程序设计入门(1)基本语法简介
2014/06/13 Python
python使用append合并两个数组的方法
2015/04/28 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
三分钟自我介绍演讲稿
2014/08/21 职场文书
李强为自己工作观后感
2015/06/11 职场文书
新员工入职感言范文!
2019/07/04 职场文书
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript