首頁  >  文章  >  web前端  >  VUE頁面載入外部HTML實例詳解

VUE頁面載入外部HTML實例詳解

小云云
小云云原創
2018-05-15 11:35:284954瀏覽

前後端分離,後端提供了介面。但有一部分數據,比較產品說明文件,是存在其他的伺服器上的。所以,在頁面顯示的時候,如果以頁面內嵌的形式顯示這個說明檔。需要搞點事情才能達到想要的效果。本文主要跟大家介紹了VUE頁面中載入外部HTML的範例程式碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。

不同以往的IFRAME標籤,那種方式比較Low,另外還有其他的一些BUG。

本文想法是把HTML請求以來,以v-html的形式載入到頁面內部。註冊全域元件【v-html-panel】

1.HtmlPanel.vue檔案

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

</style>
<script>
 export default{
  // 使用时请使用 :url.sync=""传值
  props: {
   url: {
    required: true
   }
  },
  data () {
   return {
    loading: false,
    html: &#39;&#39;
   }
  },
  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: &#39;text/html, text/plain&#39;
     }
     this.$http.get(url, param).then((response) => {
      this.loading = false
      // 处理HTML显示
      this.html = response.data
     }).catch(() => {
      this.loading = false
      this.html = &#39;加载失败&#39;
     })
    }
   }
  }
 }
</script>

htmlViewSample.vue

<template>
 <p>
  <v-html-panel :url.asyc="url1"></v-html-panel>
  <v-html-panel :url.asyc="url2"></v-html-panel>
 </p>
</template>
<style scoped>
 p{color:red}
</style>
<script>
 export default{
  data () {
   return {
    url1: &#39;&#39;,
    url2: &#39;&#39;
   }
  },
  mounted () {
   this.url1 = &#39;http://file.xxx.com/group1/M00/0C/F5/xxxxxxxx.html&#39;
   this.url2 = &#39;http://file.xxx.com/group1/M00/0D/3B/yyyyyyy.html&#39;
  },
  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;

  ...
}

相關推薦:

html懸浮框架的iframe載入html設定使用範例

以上是VUE頁面載入外部HTML實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn