全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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

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

不同以往的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>

上一张效果图

注意事项:

  • 直接使用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;

  ...
}

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


# VUE加载外部HTML  # VUE加载HTML  # VUE  # 外部HTML  # Vue中插入HTML代码的方法  # 用v-html解决Vue.js渲染中html标签不被解析的问题  # vue学习笔记之指令v-text && v-html && v-bind详解  # Vue 将后台传过来的带html字段的字符串转换为 HTML  # vue在index.html中引入静态文件不生效问题及解决方法  # HTML页面中使用Vue示例进阶(快速学会上手Vue)  # 其他的  # 加载  # 后端  # 有一  # 可以用  # 自动识别  # 产品说明  # 时请  # 大家多多  # 内嵌  # 按需  # 器上  # 以往  # 加载中  # 以达到  # loading  # style  # export  # script  # progress 


相关文章: 建站VPS选购需注意哪些关键参数?  建设网站制作价格,怎样建立自己的公司网站?  广东企业建站网站优化与SEO营销核心策略指南  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  招贴海报怎么做,什么是海报招贴?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  音乐网站服务器如何优化API响应速度?  如何制作网站标识牌,动态网站如何制作(教程)?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  哈尔滨网站建设策划,哈尔滨电工证查询网站?  如何选择高效稳定的ISP建站解决方案?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  网站制作公司排行榜,抖音怎样做个人官方网站  建站之星如何实现五合一智能建站与营销推广?  css网站制作参考文献有哪些,易聊怎么注册?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  PHP正则匹配日期和时间(时间戳转换)的实例代码  高防服务器租用如何选择配置与防御等级?  网站网页制作专业公司,怎样制作自己的网页?  如何通过VPS建站实现广告与增值服务盈利?  ,想在网上投简历,哪几个网站比较好?  如何快速上传建站程序避免常见错误?  如何选择网络建站服务器?高效建站必看指南  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  全景视频制作网站有哪些,全景图怎么做成网页?  韩国服务器如何优化跨境访问实现高效连接?  如何用已有域名快速搭建网站?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  如何生成腾讯云建站专用兑换码?  如何通过西部数码建站助手快速创建专业网站?  如何用低价快速搭建高质量网站?  网站制作说明怎么写,简述网页设计的流程并说明原因?  如何挑选最适合建站的高性能VPS主机?  如何快速选择适合个人网站的云服务器配置?  Android滚轮选择时间控件使用详解  XML的“混合内容”是什么 怎么用DTD或XSD定义  制作门户网站的参考文献在哪,小说网站怎么建立?  网站图片在线制作软件,怎么在图片上做链接?  制作网站的模板软件,网站怎么建设?  建站OpenVZ教程与优化策略:配置指南与性能提升  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  广平建站公司哪家专业可靠?如何选择?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  建站之星如何快速更换网站模板?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  如何将凡科建站内容保存为本地文件?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。