使用Jquery读取iFrame内容(iFrame本身加载更多ajax)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Jquery读取iFrame内容(iFrame本身加载更多ajax)相关的知识,希望对你有一定的参考价值。

我有一个用iFrame实现的视频播放器。

<iframe
        src="//player.twitch.tv/?video=v209807471&autoplay=true&time=02h59m45s"
        frameborder="0"
        scrolling="no"
        allowfullscreen="true"
        id="tFrame"
        class="ls-vod-iframe"
>
</iframe>

我现在想要读取当前时间戳,该时间戳位于此iframe内的.player-seek__time span中。

当我检查//player.twitch.tv/?video=v209807471&autoplay=true&time=02h59m45s的源代码,如果显示我#video-playback的空div,所以我假设它在内部的另一个调用中加载内容。

我试过这个:

var $playerBody = $('#tFrame').contents().find('#video-playback');
var $ts = $playerBody.find('.player-seek__time');
console.log($ts);

$ts.length0

有没有其他方法来获取.player-seek__time的内容或一般上面的代码有什么问题?

答案

getTimeStamp = function() {
  var frameDoc = document.getElementById('tFrame').contentDocument;
  if (frameDoc) {
    return frameDoc.body.querySelector('#video-playback > .player-seek__time').textContent;
  }
  else {
    return false; //maybe access is blocked by the website
  }
}

document.getElementById('tFrame').addEventListener('load', function() {
  alert(getTimeStamp());
});
<iframe
        src="//player.twitch.tv/?video=v209807471&autoplay=true&time=02h59m45s"
        frameborder="0"
        scrolling="no"
        allowfullscreen="true"
        id="tFrame"
        class="ls-vod-iframe"
>
</iframe>

以上是关于使用Jquery读取iFrame内容(iFrame本身加载更多ajax)的主要内容,如果未能解决你的问题,请参考以下文章

如何用JS获取iframe里面的内容

jquery如何获取页面中引入iframe网页的内容

如何使用 jquery 从 iframe 获取内容? [复制]

使用 jquery 选择器获取 iframe 内容

jquery怎么操作iframe

jquery 改变iframe内容