是否可以在 iframe 中 运行 setTimeout?

Is it possible to run setTimeout inside a iframe?

我正在尝试使用 Greasemonkey 启动嵌入式 videojs 视频。视频在 iframe 中 运行ning,我设法在 chrome 中使用 Tampermonkey 开始播放视频,但在 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 控制台使用命令,它会完美运行。

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

我认为更大的问题是弄清楚为什么它不能在 Firefox 中播放。是编码问题吗?你有 FF 可以播放的来源吗? Miro Video Converter 可以提供帮助。

也许试试这样的东西

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

function playerstart () {

}

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