在Vue-cli項目中作krpano全景圖編輯器的時候,因爲js插件的路徑是動態的,作的過程當中遇到了加載不到資源的難題,在網上搜索了很久也沒找到合適的辦法,最後想到了多是JS加載的問題,因而解決了問題,下面跟你們分享一下作法。 首先, 在vue的路由頁面中加載動態的js插件,須要等待JS文件加載完成以後,才能使用JS插件中的方法來加載全景圖:
// 加載動態JS文件 var _doc = document.getElementsByTagName('head')[0]; var js = document.createElement('script'); js.setAttribute('type', 'text/javascript'); js.setAttribute('src', jsUrl); // jsUrl是JS文件的路徑 _doc.appendChild(js); // 下面是加載全景圖, 針對不一樣瀏覽器作兼容 if (document.all) { //若是是IE js.onreadystatechange = function () { if (js.readyState == 'loaded' || js.readyState == 'complete') { embedpano({ // js插件中的方法,用於加載全景圖 swf: that.tourSwfUrl, xml: that.tourXmlUrl, target: "pano", html5: "always", mobilescale: 1.0, passQueryParameters: true }); that.krpano = document.getElementById("krpanoSWFObject"); } } } else { js.onload = function () { embedpano({ swf: this.tourSwfUrl, // krpano全景圖的swf文件路徑 xml: this.tourXmlUrl, // krpano全景圖的xml文件路徑 target: "pano", html5: "auto", mobilescale: 1.0, flash: 'auto', passQueryParameters: true }); this.krpano = document.getElementById("krpanoSWFObject") // 保存全景圖對象 } }
而後就是將全景圖顯示在頁面上javascript
<div id="pano"></div>
這樣全景圖就能順利加載出來了,第一次作前端知識分享,有不妥之處歡迎留言,謝謝!html