Javascript Youtube Iframe内部流星模板
我试图在模板中创建youtube iframe,并从多个页面调用该模板。我可以在第一页加载时加载视频(无论我从何处调用Javascript Youtube Iframe内部流星模板,javascript,iframe,meteor,youtube-api,Javascript,Iframe,Meteor,Youtube Api,我试图在模板中创建youtube iframe,并从多个页面调用该模板。我可以在第一页加载时加载视频(无论我从何处调用playertemplate),但只要我从一个有player模板的页面导航到另一个页面,iframe dom就会被删除,并且在刷新之前不会再次加载 我最初的假设是,它之所以会崩溃,是因为onyoutubeiframeapiredy只被调用一次,而iron router正在兑现dom元素 模板: <template name="player"> <div cl
player
template),但只要我从一个有player
模板的页面导航到另一个页面,iframe dom就会被删除,并且在刷新之前不会再次加载
我最初的假设是,它之所以会崩溃,是因为onyoutubeiframeapiredy
只被调用一次,而iron router正在兑现dom元素
模板:
<template name="player">
<div class="template-banner">
<div class="video-container" id="player">
</div>
</div>
</template>
在
模板.player.onRendered
回调中创建播放器。Meteor不会重新呈现用户在站点周围导航时不需要重新呈现的模板。因此,当player
模板最初呈现时,您的代码只会被调用一次。@fuzzybabybunny当我在站点周围导航时,我可以看到控制台日志显示“creating player…”,这是在create Method中。您将在template.player.onRendered
回调中创建播放器。Meteor不会重新呈现用户在站点周围导航时不需要重新呈现的模板。因此,当player
模板最初呈现时,您的代码只会被调用一次。@fuzzybabybunny当我在站点中导航时,我可以看到控制台日志显示“creating player…”,它位于create方法中
downloadIFrameAPI = _.once(->
Meteor.startup ->
$.getScript '//www.youtube.com/iframe_api'
return
return
)
Player =
create: (playerId, videoTemplate, video) ->
window.onYouTubeIframeAPIReady = ->
console.log 'creating player...'
window.player = new (YT.Player)(playerId,
width: '560'
height: '349'
events:
onReady: ->
console.log 'Player Loaded'
Player.loadVideo(video)
)
videoTemplate.rendered = onYouTubeIframeAPIReady
downloadIFrameAPI()
loadVideo: (video) ->
player.loadVideoByUrl
mediaContentUrl: video
Template.player.onRendered ->
Player.create 'player', Template.player, this.data.video