首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将脚本导入到.vue文件中?

如何将脚本导入到.vue文件中?
EN

Stack Overflow用户
提问于 2018-05-13 16:21:59
回答 3查看 1.7K关注 0票数 0

我正在尝试将播放器导入到我的vue.js文件中。通常,我会在模板之外使用脚本文件,但这不起作用。

在html文件中,我将执行以下操作:

代码语言:javascript
复制
 <div id="player">
    <div id="vplayer"></div>
 </div>

 <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/clappr@latest/dist/clappr.min.js"></script>

  <script>
  var urlsrc = "http://www.streambox.fr/playlists/x36xhzz/x36xhzz.m3u8";
  var player = new Clappr.Player({source: urlsrc, parentId: "#vplayer", height: 240, width: 320});
  </script>

在vue.js中,我尝试用下面的返回代码做同样的事情,但它不起作用:

代码语言:javascript
复制
     <template>
      <div id="player">
         <div id="vplayer"></div>
       </div>
     </template>

<script>

export default {

  name: 'player',
  data () {
    return {
      script: 'https://cdn.jsdelivr.net/npm/clappr@latest/dist/clappr.min.js',
      url: 'http://www.streambox.fr/playlists/x36xhzz/x36xhzz.m3u8',
      player: new Clappr.Player({source: this.url, parentId: "#vplayer", height: 240, width: 320})
    }
  }
}
</script>

我得到一个错误,告诉我播放器是未定义的。如何让普通脚本在vue.js中运行?

EN

回答 3

Stack Overflow用户

发布于 2018-05-13 16:37:23

您应该使用Mixins。制作自己的混音,然后在混音的methods部分中添加来自导入脚本的方法。

代码语言:javascript
复制
  var mixin = {
  methods: {
    foo: function () {
      console.log('foo')
    },
    conflicting: function () {
      console.log('from mixin')
    }
  }
}

var vm = new Vue({
  mixins: [mixin],
  methods: {
    bar: function () {
      console.log('bar')
    },
    conflicting: function () {
      console.log('from self')
    }
  }
})
票数 1
EN

Stack Overflow用户

发布于 2018-05-13 16:56:35

一种可能的解决方案是在created()挂钩中添加外部脚本并使用脚本onload方法

代码语言:javascript
复制
    <template>
      .... your HTML
    </template>

    <script>
    export default {
        data: () => ({
            url: 'http://www.streambox.fr/playlists/x36xhzz/x36xhzz.m3u8',
            player: null
        }),
        created() {
            let clapprScript = document.createElement('script')
            clapprScript.setAttribute('src', 'https://cdn.jsdelivr.net/npm/clappr@latest/dist/clappr.min.js')
            clapprScript.onload = this.initPlayer;
            document.head.appendChild(clapprScript)
        },
        methods: {
            initPlayer() {
                this.player = new Clappr.Player({
                    source: this.url,
                    parentId: "#vplayer",
                    height: 240,
                    width: 320
                })
                console.log('Player is loaded')
            }
        }
    }
    </script>
票数 1
EN

Stack Overflow用户

发布于 2018-05-14 15:31:44

在安装了带有npm的Clappr之后,您应该能够这样做:

代码语言:javascript
复制
<script>
  import Clappr from 'clappr';
  export default {
      created() {
          let player = Clappr.Player({...});
      }
  }
</script>

这样,您就可以在Vue组件中初始化clappr实例,就像在vanilla html、js场景中一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50314159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档