javascript – 当我也使用RequireJS时,如何使用videojs插件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 当我也使用RequireJS时,如何使用videojs插件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2225字,纯文字阅读大概需要4分钟。
内容图文
我正在开发一个包含一些我无法控制的JS代码的网站.该代码使用RequireJS加载依赖项和所有.
免责声明:我是RequireJS菜鸟.我理解基础知识,但这几乎是……
在我的网站上,我需要使用VideoJS. VideoJS可以使用,也可以不使用RequireJS,但据我所知,如果在页面的某个地方使用RequireJS,我就无法使用VideoJS.
所以我正在使用RequireJS加载VideoJS,如下所示:
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插件来管理预卷广告. (https://github.com/dirkjanm/videojs-preroll)
我尝试将插件脚本包含在RequireJS中,包含脚本,但是一旦插件尝试访问videojs对象,我就会收到一个错误,告诉我videojs没有定义.
我的猜测是,当我将VideoJS作为RequireJS模块加载时,它不在全局范围内,而我正在使用的插件正在全局范围内寻找VideoJS,这就是我得到该错误的原因.
有没有什么方法可以使用VideoJS而不将它作为RequireJS模块加载?或者我如何帮助插件找到VideoJS对象?
谢谢你的帮助!
解决方法:
您应该使用requirejs中的shim并将videojs注入全局范围.
我为你的案例编写了一个代码示例.我测试了它并且它有效(你可以看到下面的图像):
装货单:
>“videojs”
>“add-video-js-in-global-scope”
>“ads”(此时videojs var已经存在于window对象中)
>“预卷”
Requirejs分析顺序:
> requirejs([“preroll”,“ads”] – 切入点
>“preroll” – 需要“广告”
>“广告” – 需要“add-video-js-in-global-scope”
>“add-video-js-in-global-scope” – 需要“videojs”并在window对象中添加videojs var.
app.js
requirejs.config({
paths: {
"videojs": "./libs/video",
"ads": "./libs/videojs.ads",
"preroll": "./libs/videojs-preroll"
},
shim:{
"preroll": {
deps: ['ads']
},
"ads": {
deps: ["add-video-js-in-global-scope"],
}
}
});
define("add-video-js-in-global-scope",["videojs"], function(videojs) {
window.videojs = videojs;
});
requirejs(["preroll", "ads"], function (preroll,ads) {
// preroll and ads will be undefined because it's not amd.
videojs('idOne', {}, function () {
var player = this;
player.ads(); // initialize the ad framework
// your custom ad integration code
});
});
的index.html
<html>
<head>
</head>
<body>
<script data-main="app.js" src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.22/require.js"></script>
<div id="idOne"></div>
</body>
</html>
内容总结
以上是互联网集市为您收集整理的javascript – 当我也使用RequireJS时,如何使用videojs插件全部内容,希望文章能够帮你解决javascript – 当我也使用RequireJS时,如何使用videojs插件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。