2016-10-04 7 views
2

Ich versuche ein eingebettetes videojs Video mit Greasemonkey zu starten. Das Video läuft in einem iframe und ich konnte das Video in Chrome mit Tampermonkey starten, aber in Firefox beginnt das Video zu laden und stoppt eine Sekunde später. Ich denke, mein folgendes Skript startet zu früh, nachdem ich die Seite neu geladen habe, also habe ich versucht, den Start mit setTimeout zu verzögern, aber der Code wird nicht gestartet. Also meine Frage ist es möglich, setTimeout innerhalb eines iframe zu verwenden?Ist es möglich, setTimeout in einem iframe auszuführen?

// ==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"); 
} 

Ich benutze @include https://openload.co/embed/ * das Skript innerhalb des iframe laufen sonst kann ich nicht den Befehl .play() verwenden. Wenn ich den iframeurl manuell öffne und die Befehle über die FF-Konsole verwende, funktioniert es einwandfrei.

+1

Es ist wahrscheinlich, dass in Firefox das Video automatisch abgespielt wird, nachdem #videooverlay angeklickt wurde. Versuchen Sie, die play() -Zeile zu kommentieren. – wOxxOm

+0

Ich kann nicht sehen, was das eigentliche Problem hier ist. Sie präsentieren Code, der Timeout verwendet, aber der Titel Ihrer Frage fragt, ob Sie Timeout verwenden können ... Funktioniert das Timeout für Sie? Werden die 'console.log' Protokolle in der Konsole angezeigt? –

+0

Warum verwenden Sie '@include iframeurl' nicht, um den Code im richtigen Fenster auszuführen? – w35l3y

Antwort

0

Vielleicht etwas versuchen, wie dies

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

function playerstart() { 

} 
+2

Erklären, warum dieser Code funktioniert und mehr Details gibt, wäre wahrscheinlich hilfreich. –

0

Ich denke, Sie möchten eine "Onload" -Ereignis-Listener auf die Seite im iframe geladen werden, und in der Ladefunktion fügen Sie die setTimeout.

Ich denke, das größere Problem, um herauszufinden, warum es nicht in Firefox spielt. Ist es ein Codierungsproblem? Hast du es in einer Quelle, die FF spielen kann? Miro Video Converter kann helfen.

+0

hinzugefügt Die Quelle wird von openload.co gehostet und der Player ist in eine Website eingebettet, wo ich versuche, das Video automatisch zu starten. nach dem Laden der Url. Wenn ich das Video manuell starte, funktioniert es normal, daher glaube ich nicht, dass es sich um ein Codierungsproblem handelt. – Hopi

0

Sie tryed Sie das Skript auf dem Elternteil zu beginnen und innerhalb des iframe? Dann benutze setTimeout.

+0

Bitte geben Sie Ihre Codes an –

+0

Ich dachte, ich kann nicht mit dem Skript innerhalb des Iframe interagieren? – Hopi

Verwandte Themen