J'essaie de démarrer une vidéo videojs intégrée en utilisant Greasemonkey. La vidéo est en cours d'exécution dans une iframe et j'ai réussi à lancer la vidéo en chrome avec Tampermonkey mais dans Firefox la vidéo commence à se charger et s'arrête une seconde plus tard. Je suppose que mon script suivant commence trop tôt après avoir rechargé la page, j'ai donc essayé de retarder le démarrage avec setTimeout mais le code ne démarre pas. Donc ma question est-il possible d'utiliser setTimeout dans un iframe?Est-il possible d'exécuter setTimeout à l'intérieur d'un iframe?
// ==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");
}
J'utilise @include https://openload.co/embed/ * pour exécuter le script dans l'iframe sinon je ne peux pas utiliser la commande .play(). Si j'ouvre l'iframeurl manuellement et que j'utilise les commandes sur la console FF, cela fonctionne parfaitement.
Il est probable que dans Firefox, la vidéo soit lue automatiquement après que #videooverlay a été cliqué. Essayez de commenter la ligne play(). – wOxxOm
Je ne vois pas quel est le problème ici. Vous présentez du code qui utilise le délai d'expiration, mais le titre de votre question vous demande si vous pouvez utiliser le délai d'attente ... Le délai d'expiration fonctionne-t-il pour vous? Les journaux 'console.log' apparaissent-ils dans la console? –
Pourquoi n'utilisez-vous pas '@include iframeurl' pour exécuter le code dans la bonne fenêtre? – w35l3y