您好,登錄后才能下訂單哦!
這篇文章主要介紹“VUE頁面中怎么加載外部HTML”,在日常操作中,相信很多人在VUE頁面中怎么加載外部HTML問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”VUE頁面中怎么加載外部HTML”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
前后端分離,后端提供了接口。但有一部分數據,比較產品說明文件,是存在其他的服務器上的。
所以,在頁面顯示的時候,如果以頁面內嵌的形式顯示這個說明文件。需要搞點事情以達到想要的效果。
不同以往的IFRAME標簽,那種方式比較Low,另外有其他的一些BUG。
本文思路是把HTML請求以來,以v-html的形式加載到頁面內部。注冊全局組件【v-html-panel】
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=''
this.url2=''
},
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”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。