<template> <a href="#" @click.prevent="open"> <img :src="img" :alt="title" style="border-radius: 6px;"> </a> </template> <script> export default { props: { title: { type: String, default: "Play Vuex Explained Visually Video" }, img: { type: String, default: "/vuex-explained-visually.png" }, url: { type: String, default: "https://player.vimeo.com/video/297515936?autoplay=1" } }, methods: { open() { // dropped v-if/v-else way to fix autoplay issue on Chrome // https://github.com/vuejs/vuex/pull/1453#issuecomment-441507095 const { $el, url } = this; if (!$el || !$el.parentNode) { return; } const attrs = { width: 640, height: 360, frameborder: 0, src: url, webkitallowfullscreen: true, mozallowfullscreen: true, allowfullscreen: true }; const video = document.createElement('iframe'); for (const name in attrs) { video.setAttribute(name, attrs[name]); } $el.parentNode.replaceChild(video, $el); } } } </script>