js 怎么读取线上的 .js文件?


 fetch(`https://unpkg.com/xlsx@0.18.5`)
      .then((res) => {
        console.log(res);
        return res.blob();
      })
      .then((res) => {
        console.log(res);

        const reader = new FileReader();
        reader.onload = (e) => {
          console.log(e);
          const pargram=e.currentTarget.result;
          console.log(pargram.utils);
        };
        reader.readAsArrayBuffer(res);
      })
      .catch((err) => {
        console.log(err);
      });

img

img

读取不到xlsx插件啊,怎么把拿到的这个blob文件转成可读取的本地对象呢?

原来就差一点

        fetch("https://unpkg.com/xlsx@0.18.5").then(res => res.blob().then(blob => {
          console.log(blob);
          let reader = new FileReader();
          reader.readAsBinaryString(blob);
          reader.onload = function (result) {
            console.log(result);
            eval(result.currentTarget.result);
          }
        }));

执行前:

img

可见没有XLSX

执行后:

img

有了插件了

LoadScript: https://github.com/tserkov/vue-plugin-load-script
用于加载和卸载脚本:

import LoadScript from 'vue-plugin-load-script';
Vue.use(LoadScript);

加载脚本:

Vue.loadScript('https://cse.google.com/cse.js?cx=007968012720720263530:10z7awj2l37')
  .then(() => {
    // do something after script loads
  })
  .catch(() => {
    // do something if load fails
  });

卸载脚本:

Vue.unloadScript('https://cse.google.com/cse.js?cx=007968012720720263530:10z7awj2l37')
  .then(() => {
    // do something after script unloads
  })
  .catch(() => {
    // do something if unload fails
  });

你为啥不试试,在你需要用的时候再使用js去创建一个script标签,src写在线的js地址,然后监听你需要的函数有没有创建成功


 mounted() {
   const s = document.createElement('script');
    s.type = 'text/javascript';
    s.src = 'https://unpkg.com/xlsx@0.18.5';
    document.body.appendChild(s);
  }