从DOM中删除后仍然播放视频,如何完全消除?

时间:2017-09-21 14:56:48

标签: ajax dom html5-video jqxhr video-embedding

我的网站上有一个容器,只要点击某种类型的链接,我就可以通过 jQuery Ajax/XHR动态注入新内容。

对于某些网页,此容器包含一个网格,其中包含多个 HTML5 <video>元素循环播放。

在某个时刻,我经历了一些XHR requests之后性能下降,这会取代容器内的内容。取消我的视频后,我只通过来自我的扬声器的音频识别他们实际上正在播放,即使它们已从DOM完全删除(这意味着我播放了大量视频)在我的容器中进行了几次XHR替换后,视频实际上不在DOM中。

我现在尝试了一些事情,但似乎没有任何帮助:

  • remove()之前的所有视频中使用 jQuery XHR request 在我注入新内容之前删除DOM中的视频
  • 在加载新内容之前通过Javascript暂停视频

这似乎只是随机工作,这让我发疯。有时,一些或者一些视频会在关闭时播放,与新视频内容重叠。此外,它们没有出现在Chrome DevTool的网络选项卡中......

我觉得由于缓冲的东西只是经典DOM-querying而且操作在这里不起作用...任何暗示我可以放入我的前XHR请求函数以确保任何当前{{1}来自<video>(和关闭,在缓冲区和其他地方)的内容真的被100%删除,换句话说'被杀'?

编辑:以下是我的问题的简化演示,请尝试点击与DOM div {{交换ID内容的链接3}} http://www.letrip.de/html5video-problem/

您可以通过将/js/app.js添加到网址来查看Javascript

2 个答案:

答案 0 :(得分:0)

将视频添加为模板..并将此模板分配给变量并使用它,当您要删除它时将其设为null。

实施例。 Var vdo =

进行操作然后将其设为空

Vdo = null;

答案 1 :(得分:0)

变化:


    var content = $(data).find('#content');
    html = content.html();
    $('#content').html(html);

到:


     var = content = $("#content",data);
     $('#content').html(content);

祝你好运

<强>更新 一旦你这样做:$(数据)问题将返回。 尝试这样做以返回标题:


     var titledata = data.match("(.*?)")[1];
     console.log(titledata);