Javascript 当我同时使用RequireJS时,如何使用videojs插件
我在一个网站上工作,其中包含一些我无法控制的JS代码。该代码使用RequireJS加载依赖项和所有 免责声明:我是RequireJS noob。我了解基本情况,但基本上就是这样 在我的网站上,我需要使用VideoJS。VideoJS可以使用或不使用RequireJS,但据我所知,如果页面中的某个地方使用了RequireJS,没有它我就无法使用VideoJS 因此,我正在加载带RequireJS的VideoJS,如下所示:Javascript 当我同时使用RequireJS时,如何使用videojs插件,javascript,requirejs,video.js,Javascript,Requirejs,Video.js,我在一个网站上工作,其中包含一些我无法控制的JS代码。该代码使用RequireJS加载依赖项和所有 免责声明:我是RequireJS noob。我了解基本情况,但基本上就是这样 在我的网站上,我需要使用VideoJS。VideoJS可以使用或不使用RequireJS,但据我所知,如果页面中的某个地方使用了RequireJS,没有它我就无法使用VideoJS 因此,我正在加载带RequireJS的VideoJS,如下所示: var MyRequire = requirejs.config({
var MyRequire = requirejs.config({
baseUrl: '/_/js',
paths: {
videojs: 'http://vjs.zencdn.net/5.3.0/video'
}
});
MyRequire(["videojs"], function(videojs) {
videojs('myPlayer', {}, function(){
console.log('...');
});
});
它正在工作
但我想使用VideoJS插件来管理预售广告
我试图在RequireJS中包含插件脚本,该脚本已包含在内,但一旦插件尝试访问videojs对象,我就会收到一个错误,告诉我videojs未定义
我的猜测是,当我将VideoJS作为RequireJS模块加载时,它不在全局范围内,我使用的插件正在全局范围内查找VideoJS,这就是为什么我会出现这个错误
有没有办法不用把VideoJS作为RequireJS模块加载就可以使用它?或者我如何帮助插件找到VideoJS对象
谢谢你的帮助 您应该使用from requirejs并将videojs注入到全局范围中。
我为你的案例做了一个代码示例。我对它进行了测试,效果良好(您可以看到下面的图片):
装货顺序:
requirejs.config({
路径:{
“videojs”:“/libs/video”,
“ads”:“/libs/videojs.ads”,
“预滚”:“/libs/videojs预滚”
},
垫片:{
“预滚”:{
副部长:['ads']
},
“广告”:{
deps:[“在全局范围内添加视频js”],
}
}
});
定义(“在全局范围内添加视频js”,[“视频js”],函数(视频js){
window.videojs=videojs;
});
requirejs([“预滚”,“广告”],功能(预滚,广告){
//预售和广告将是未定义的,因为它不是amd。
videojs('idOne',{},函数(){
var player=这个;
player.ads();//初始化ad框架
//您的自定义广告集成代码
});
});