Próbuję napisać dodatek do przeglądarki Firefox do użytku osobistego i dowiedzieć się nieco więcej o JavaScript i pakiecie SDK dla Firefox Add-on. Dodatek powinien otworzyć adres URL vivo.sx
, a następnie automatycznie uruchomić odtwarzacz, ale mam 2 problemy. Mam nadzieję, że mi pomożesz.Jak korzystać z funkcji Flowplayer w skrypcie treści?
Odpowiedni kod add-on-:
function vivoplay()
{
pageMod.PageMod({
include: "https://vivo.sx/*",
contentScriptFile: "./vivoplay.js",
onAttach: play
});
function play(worker) //Fires 2 Times
{
console.log("Timeout");
tmr.setTimeout(sendplay, 14000);
function sendplay()
{
var a = 0;
worker.port.emit("start", a);
}
}
}
treści skryptu
self.port.on("start", function(a) {
console.log("Load");
flowplayer().load(); //ReferenceError: flowplayer is not defined
console.log("Loaded");
});
Pierwszym problemem jest to, że funkcja play
pożary 2 razy, ale należy uruchomić tylko raz. To prawdopodobnie onAttach
, który nie działa poprawnie. Co sądzisz o tym?
Ważniejszym problemem jest ReferenceError
. Mam skrypt Greasemonkey, w którym używam funkcji flowplayer().load();
. Myślałem, że skrypt zawartości działa jak skrypt Greasemonkey. Powinienem móc korzystać z tej funkcji. Czy to jest poprawne? Jak mogę to naprawić?
mój skrypt Greasemonkey
// ==UserScript==
// @name 3. Vivo
// @namespace Autoplay
// @include https://vivo.sx/*
// @version 1
// @grant none
// ==/UserScript==
window.setTimeout(Play, 2000);
function Play()
{
flowplayer().load();
console.log("Loaded");
flowplayer().fullscreen();
console.log("Fullscreen started");
}
Jestem zupełnie nowy w tym więc proszę o cierpliwość ze mną :)
Jeżeli potrzebują Państwo więcej informacji, proszę zostawić komentarz.
Gdzie definiujesz 'flowplayer()'? – Makyen
nigdzie nie wiadomo, jak to zdefiniować. –
W jaki sposób zostaje on włączony do środowiska, którego używasz w Greasemonkey? Czy jest on częścią strony, z którą próbujesz wejść w interakcję? – Makyen