找不到为 YouTube 对象编写脚本的 API 函数

发布于 2024-11-25 22:45:19 字数 842 浏览 2 评论 0 原文

我正在尝试通过 JavaScript 操作 Youtube 对象。但是一旦我调用像seekTo()这样的函数,JS引擎就会告诉我没有这样的函数:

<script type="text/javascript" src="swfobject.js"></script>    
<div id="ytapiplayer"></div>
<script type="text/javascript">
var params = { allowScriptAccess: "always" };
var atts = { id: "ytplayer" };
swfobject.embedSWF("http://www.youtube.com/v/tS3J2BkLamQ?enablejsapi=1&playerapiid=ytplayer", 
               "ytapiplayer", "425", "356", "8", null, null, params, atts);
</script>
<a href="javascript:void(0);" onclick="ytplayer.seekTo(10,true)">seek</a>

三个 ID /en-EN/apis/youtube/js_api_reference.html#Examples" rel="nofollow">官方示例。我都尝试了但没有结果。

Fiefox 6 AFAIK

UPD 最后我发现这样的代码必须在服务器端运行。

I'm trying to manipulate an Youtube object via JavaScript. But once I call a function like seekTo(), JS engine tells me there is no such function:

<script type="text/javascript" src="swfobject.js"></script>    
<div id="ytapiplayer"></div>
<script type="text/javascript">
var params = { allowScriptAccess: "always" };
var atts = { id: "ytplayer" };
swfobject.embedSWF("http://www.youtube.com/v/tS3J2BkLamQ?enablejsapi=1&playerapiid=ytplayer", 
               "ytapiplayer", "425", "356", "8", null, null, params, atts);
</script>
<a href="javascript:void(0);" onclick="ytplayer.seekTo(10,true)">seek</a>

There are three IDs in the official example. I tried them all with no result.

Fiefox 6 AFAIK

UPD Finally I figured out such code must be run at the server side.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

女中豪杰 2024-12-02 22:45:19

您首先需要确保您的 ytplayer JS 对象设置为正确的内容 - 您可以在调用 onYouTubePlayerReady()

function onYouTubePlayerReady(playerId) {
  // create a global variable called ytplayer
  ytplayer = document.getElementById("ytplayer"); 
}

我认为 API 在播放器加载后会为您调用此函数 -你不需要注册它。

编辑:这里是一个工作 jsfiddle 的链接:

http://jsfiddle.net/cZdZK/

You will first need to make sure your ytplayer JS object is set to the right thing - you can do this inside a call to onYouTubePlayerReady():

function onYouTubePlayerReady(playerId) {
  // create a global variable called ytplayer
  ytplayer = document.getElementById("ytplayer"); 
}

I think the API calls this function for you once the player has loaded - you don't need to register it.

Edit: here is a link to a working jsfiddle:

http://jsfiddle.net/cZdZK/

回忆凄美了谁 2024-12-02 22:45:19

答案是:由于Flash的限制,代码应该在服务器端运行。

The answer is: the code should be run on the server side due to restrictions of Flash.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文