Javascript 使用Greasemonkey加载我自己的视频播放器,跨域
我制作了一个脚本来转换所有Javascript 使用Greasemonkey加载我自己的视频播放器,跨域,javascript,flash,uri,base64,greasemonkey,Javascript,Flash,Uri,Base64,Greasemonkey,我制作了一个脚本来转换所有wmvavimp3wavmp4等链接,以便与嵌入式jwplayer一起播放。播放机加载但不播放视频,而是显示以下错误:任务队列在步骤5失败:由于跨域策略限制,无法加载播放列表。 在线搜索让我意识到我需要一个名为crossdomain.xml或类似的文件。既然这是一个可以在任何网站上运行的脚本,我显然不能这么做 我想也许可以将整个播放器内联到一个数据uri中。我也这样试过: 这是我从中获取播放器的站点: 我想做的事可能吗?我想它就像img的数据uri一样工作。我错过什么了
wmv
avi
mp3
wav
mp4
等链接,以便与嵌入式jwplayer一起播放。播放机加载但不播放视频,而是显示以下错误:任务队列在步骤5失败:由于跨域策略限制,无法加载播放列表。
在线搜索让我意识到我需要一个名为crossdomain.xml或类似的文件。既然这是一个可以在任何网站上运行的脚本,我显然不能这么做
我想也许可以将整个播放器内联到一个数据uri中。我也这样试过:
这是我从中获取播放器的站点:
我想做的事可能吗?我想它就像img的数据uri一样工作。我错过什么了吗
编辑:数据URI在
或
节点上不起作用。这就是为什么
此外,当使用直接
方法时,player.swf
文件必须与视频位于同一域,否则跨站点安全将阻止视频加载。这个特定的块可以内置在这个特定的player.swf
中
然而当使用Longtailvideo的jwplayer.setup()
功能时(他们还是推荐),播放器似乎可以工作
您必须使用播放机的托管版本,但幸运的是,http://player.longtailvideo.com/player.swf
它将给出一个
网络错误:404未找到-http://someSite/crossdomain.xml
错误,但将播放视频
下面是一个GM脚本示例:
// ==UserScript==
// @name _Video embed fun
// @include http://YOUR_SITE/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
// @require http://player.longtailvideo.com/jwplayer.js
// ==/UserScript==
//--- Find all hyperlinks to select video files.
var videoLinks = $("a[href$='.mpg'], a[href$='.mp4'], a[href$='.wmv']");
//--- For each video link, activate our video player.
videoLinks.each ( function (J) {
var jThis = $(this);
var vidURL = jThis.attr ('href');
var contID = 'myVidContainer_' + J;
jThis.after ('<div id="' + contID + '">Loading the player ...</div>');
jwplayer (contID).setup ( {
flashplayer: "http://player.longtailvideo.com/player.swf",
file: vidURL,
height: 344,
width: 480
} );
} );
/==UserScript==
//@name\u视频嵌入乐趣
//@包括http://YOUR_SITE/*
//@需要http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
//@需要http://player.longtailvideo.com/jwplayer.js
//==/UserScript==
//---查找所有超链接以选择视频文件。
var videoLinks=$([href$='.mpg']、a[href$='.mp4']、a[href$='.wmv']);
//---对于每个视频链接,激活我们的视频播放器。
videoLinks.each(功能(J){
var jThis=$(本);
var vidURL=jThis.attr('href');
var contID='myVidContainer_uuz'+J;
jThis.after('加载播放器…');
jwplayer(contID).安装程序({
flashplayer:“http://player.longtailvideo.com/player.swf",
文件:vidURL,
身高:344,
宽度:480
} );
} );
警告:
.wmv
文件将不起作用,而许多.mp4
文件起作用foo.com\somevid.mp4
的目标页面foo.com\somepage.htm
将(通常)工作,但如果视频是cdn.foo.com\somevid.mp4
,它将不工作- 编写自己的Firefox插件,该插件不受跨域修补本地文件(
)的限制。您可以使用Greasemonkey或脚本式代码player.swf
- 让您的GM脚本将视频AJAX发送到您自己的服务器(可以是您的本地机器运行,等等)。然后,所述机器将向您提供视频和
,可能以播放器.swf
的形式