我正在尝试编写一个Firefox附加组件供个人使用,并学习更多关于JavaScript和Firefox附加组件的SDK.加载项应该打开一个vivo.sxURL,然后自动启动播放器,但我有2个问题.我希望你们能帮助我.
相关的附加代码:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
内容脚本
self.port.on("start", function(a) {
console.log("Load");
flowplayer().load(); //ReferenceError: flowplayer is not defined
console.log("Loaded");
});
Run Code Online (Sandbox Code Playgroud)
第一个问题是函数play触发2次,但应该只运行一次.可能是onAttach因为它无法正常工作.你觉得怎么样?
更重要的问题是ReferenceError.我有一个Greasemonkey脚本,我使用该函数flowplayer().load();.我认为内容脚本像Greasemonkey脚本一样运行.所以,我应该能够使用这个功能.那是对的吗?我怎样才能解决这个问题?
我的油脂脚本
// ==UserScript==
// @name 3. Vivo
// @namespace Autoplay
// @include https://vivo.sx/*
// @version 1
// @grant none
// ==/UserScript== …Run Code Online (Sandbox Code Playgroud)