1. 程式人生 > >在Vue專案中載入krpano全景圖

在Vue專案中載入krpano全景圖


在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")        // 儲存全景圖物件
      }
    }

然後就是將全景圖顯示在頁面上


<div id="pano"></div>

這樣全景圖就能順利加載出來了,第一次做前端知識分享,有不妥之處歡迎留言,謝謝!

原文地址:https://segmentfault.com/a/1190000017292935