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 相关文章推荐
解决checkbox的attr(checked)一直为undefined问题
Jun 16 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
Jan 20 Javascript
javascript深拷贝和浅拷贝详解
Feb 14 Javascript
微信小程序开发之入门实例教程篇
Mar 07 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
Oct 26 Javascript
iview日期控件,双向绑定日期格式的方法
Mar 15 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
Mar 15 Javascript
如何使用JavaScript实现栈与队列
Jun 24 Javascript
KnockoutJS数组比较算法实例详解
Nov 25 Javascript
JavaScript中this函数使用实例解析
Feb 21 Javascript
基于Vue CSR的微前端实现方案实践
May 27 Javascript
vue3.0 上手体验
Sep 21 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代码
2010/02/16 PHP
PHP微信公众号自动发送红包API
2016/06/01 PHP
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
thinkPHP5.1框架中Request类四种调用方式示例
2019/08/03 PHP
Jquery下:nth-child(an+b)的使用注意
2011/05/28 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
js单例模式详解实例
2013/11/21 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
JavaScript实现删除,移动和复制文件的方法
2015/08/05 Javascript
JavaScript编写简单的计算器
2015/11/25 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
angular2模块和共享模块详解
2018/04/08 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
小小聊天室Python代码实现
2016/08/17 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
资深地理教师自我评价
2013/09/21 职场文书
药学专业个人的自我评价
2013/12/31 职场文书
趣味体育活动方案
2014/02/08 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
教学副校长工作总结
2015/08/13 职场文书