在Vue项目中加载krpano全景图

本文介绍在Vue-cli项目中如何解决krpano全景图编辑器资源加载问题。通过动态加载JS插件并确保其加载完成后再调用全景图加载方法,实现跨浏览器兼容。分享了具体代码实现及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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>

这样全景图就能顺利加载出来了,第一次做前端知识分享,有不妥之处欢迎留言,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值