【问题标题】:Video JS controls with AJAX call带有 AJAX 调用的视频 JS 控件
【发布时间】:2012-05-24 20:59:06
【问题描述】:

早安,

我正在尝试创建一个网页,当用户单击某些内容(由 javascript onClick 触发)调用时,会向服务器发送一个 ajax 请求,该请求会触发一个 php 文件以生成要分配给 .innerHTML 的分区。

一切正常,只是视频没有控件(如播放按钮、全屏等)

如果没有 AJAX 调用,一个简单的硬编码版本可以通过控件很好地显示视频,因此使用 AJAX 也可以。我正在使用 Video JS 播放器,据我所知,该代码没有任何需要执行的脚本。

这是我的 php 代码...

<?php

    echo '<video id="example_video_1" class="video-js vjs-default-skin" controls preload="auto" width="720" height="528" data-setup=\'{"controls":true}\'><source src="videos/'.$_GET["fn"].'" type=\'video/ogg\'/></video>';

?>

我认为这与 javascript 不会在 AJAX 调用上执行这一事实有关,但我不确定...

谢谢!

【问题讨论】:

  • 似乎Video JS使用的任何代码都只在页面加载时执行,并且您在页面加载后添加播放器。

标签: php ajax html5-video


【解决方案1】:

当您的 AJAX 结果标记尚未加载时,VideoJS 在页面加载时检查视频标签。视频通话返回后,您需要手动初始化 VideoJS。

var myPlayer = _V_("example_video_1");

详见 VideoJS API 文档:http://videojs.com/docs/api/

【讨论】:

  • 哇!这立即解决了我的问题!我将该行添加到初始页面加载(不在 ajax 部分),现在一切正常!感谢您的帮助!
  • 其实我是个骗子。显然,当我去测试更改时,我使用了 Firefox(其默认视频播放器具有全屏选项),而最初当我遇到问题时,我使用的是 Google chrome,它在他们的视频播放器上没有默认的全屏控制.长话短说,我感谢您的帮助,但显然它没有完成这项工作。
  • 如果您按照我的建议在将 ajax 结果添加到 DOM 之后 调用函数会发生什么?
猜你喜欢
  • 2016-02-28
  • 1970-01-01
  • 2012-03-27
  • 1970-01-01
  • 2017-01-24
  • 2014-04-03
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
相关资源
最近更新 更多