首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何与Mixcloud Widget交互?

如何与Mixcloud Widget交互?
EN

Stack Overflow用户
提问于 2017-10-22 01:54:55
回答 1查看 966关注 0票数 2

我有一个包含混合云嵌入的组件,代码如下:

代码语言:javascript
复制
<template>
  <div>
  <iframe id="widget" width="100%" height="60" :src="iframe.src" frameborder="0" v-show="iframe.loaded"></iframe>

 </div>
</template>

我已经在根文件中加载了mixcloud小部件API:

代码语言:javascript
复制
<script src="//widget.mixcloud.com/media/js/widgetApi.js" type="text/javascript"></script>

但是我不能和玩家互动:

代码语言:javascript
复制
var widget = Mixcloud.PlayerWidget(document.getElementById("widget"));
widget.pause();  

控制台显示:

代码语言:javascript
复制
Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://www.mixcloud.com') does not match the recipient window's origin

Uncaught TypeError: widget.pause is not a function

我相信这是因为嵌入是异步加载的。谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2018-08-28 20:22:59

模板:

代码语言:javascript
复制
    <template>
      <div>
        <iframe
          id="mixcloud"
          :src="link"
          @load="mountApi"
          width="100%"
          height="120"
          frameborder="0"
          allow="autoplay"
        >
        </iframe>
      </div>
    </template>

组件:

代码语言:javascript
复制
    <script>
    var widget

    export default {
      name: 'mixcloud',
      computed: {
        link: function () {
          // ...
          return link
        }
      },
      methods: {
        mountApi: function () {
          // eslint-disable-next-line
          widget = Mixcloud.PlayerWidget(document.getElementById('mixcloud'))
        },
        play: function () {
          widget.play()
        },
        pause: function () {
          widget.pause()
        }
      }
    }
    </script>

...works很好。:)

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

https://stackoverflow.com/questions/46866291

复制
相关文章

相似问题

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