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 相关文章推荐
js获取height和width的方法说明
Jan 06 Javascript
javascript验证只能输入数字和一个小数点示例
Oct 21 Javascript
jquery 模板的应用示例
Nov 12 Javascript
使用ajax+jqtransform实现动态加载select
Dec 01 Javascript
jQuery选择器源码解读(七):elementMatcher函数
Mar 31 Javascript
浅谈javascript alert和confirm的美化
Dec 15 Javascript
浅谈Angular的$q, defer, promise
Dec 20 Javascript
a标签置灰不可点击的实现方法
Feb 06 Javascript
react-native动态切换tab组件的方法
Jul 07 Javascript
基于vue手写tree插件的那点事儿
Aug 20 Javascript
如何在Vue中抽离接口配置文件
Oct 31 Javascript
vue 实现把路由单独分离出来
Aug 13 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
php使用pack处理二进制文件的方法
2014/07/03 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
js 提交和设置表单的值
2008/12/19 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
Javascript Object 对象学习笔记
2014/12/17 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
微信小程序-可移动菜单的实现过程详解
2019/06/24 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
python中mechanize库的简单使用示例
2014/01/10 Python
Python标准库shutil用法实例详解
2018/08/13 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
思想品德自我评价
2014/02/04 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
母亲去世追悼词
2015/06/23 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript
python中对列表的删除和添加方法详解
2022/02/24 Python