可以在iframe中运行setTimeout吗?

时间:2016-10-04 19:29:12

标签: javascript iframe greasemonkey video.js

我正在尝试使用Greasemonkey启动嵌入式videojs视频。该视频在iframe中运行,我设法使用Tampermonkey以chrome格式启动视频,但在Firefox中视频开始加载并在稍后停止。我想我的以下脚本在重新加载页面后很快启动,所以我试图用setTimeout延迟启动但代码不会启动。所以我的问题是可以在iframe中使用setTimeout吗?

// ==UserScript==
// @name        Autoplay
// @namespace   openload
// @include     https://openload.co/embed/*
// @version     1.0.0
// @run-at      document-idle
// ==/UserScript==

window.setTimeout(play, 5000);
function play()
{
console.log("Start");
document.querySelector('#videooverlay').click();
videojs.getPlayers()['olvideo'].player_.play();
console.log("End");
}

我使用@include https://openload.co/embed/ *在iframe中运行脚本,否则我无法使用命令.play()。 如果我手动打开iframeurl并使用FF控制台上的命令,它可以很好地工作。

3 个答案:

答案 0 :(得分:0)

我想你会想要添加一个" onload"事件监听器在iframe中加载页面,并在load函数中添加setTimeout。

我认为要找出为什么它没有在Firefox中播放这个更大的问题。这是编码问题吗?你有FF可以玩的来源吗? Miro Video Converter可以提供帮助。

答案 1 :(得分:0)

也许尝试这样的事情

window.addEventListener ("load", playerstart, false);

function playerstart () {

}

答案 2 :(得分:0)

您是否尝试在父级和iframe内部启动脚本?然后使用setTimeout。