使用 requirejs 包含外部 js
Including external js with requirejs
我的 js 文件中有以下由 requirejs 调用的文件
define([
'jquery',
'backbone',
'mobiledetect'
],
function($, Backbone, mobiledetect) {
var MobileCheckView = Backbone.View.extend({
initialize: function(){
var md = new MobileDetect(window.navigator.userAgent);
if (md.mobile() || md.phone() || md.tablet()) {
$('#mho_app').popup('show');
}
}
});
return MobileCheckView;
});
我收到 Uncaught ReferenceError: MobileDetect is not defined when referenceing the external file via path in my main.js file
我也试过直接在文件顶部定义它,但没有成功。我错过了什么阻止脚本加载并给我对象?
define('mobiledetect', ['https://cdnjs.cloudflare.com/ajax/libs/mobile-detect/1.3.6/mobile-detect.min.js'], function () {
var md = new MobileDetect(window.navigator.userAgent);
return md;
});
我建议使用 RequireJS 中的 paths 配置将 mobiledetect 设置为 URL,就像这样。请注意,“.js”不在 URL 中。 RequireJS 将自动添加“.js”扩展名。
require.config({
paths: {
'mobiledetect': 'https://cdnjs.cloudflare.com/ajax/libs/mobile-detect/1.3.6/mobile-detect.min'
}
});
require(['mobiledetect'], function (MobileDetect) {
var md = new MobileDetect(window.navigator.userAgent);
if (md.mobile() || md.phone() || md.tablet()) {
alert('Mobile Device');
}
else {
alert('Must be a desktop?');
}
});
查看此 JSFiddle example 以查看代码的运行情况。您将收到一条警报,说明您是在使用移动浏览器还是桌面浏览器。
此外,参数 mobiledetect
应该是 MobileDetect
以匹配 new MobileDetect
调用。
我的 js 文件中有以下由 requirejs 调用的文件
define([
'jquery',
'backbone',
'mobiledetect'
],
function($, Backbone, mobiledetect) {
var MobileCheckView = Backbone.View.extend({
initialize: function(){
var md = new MobileDetect(window.navigator.userAgent);
if (md.mobile() || md.phone() || md.tablet()) {
$('#mho_app').popup('show');
}
}
});
return MobileCheckView;
});
我收到 Uncaught ReferenceError: MobileDetect is not defined when referenceing the external file via path in my main.js file
我也试过直接在文件顶部定义它,但没有成功。我错过了什么阻止脚本加载并给我对象?
define('mobiledetect', ['https://cdnjs.cloudflare.com/ajax/libs/mobile-detect/1.3.6/mobile-detect.min.js'], function () {
var md = new MobileDetect(window.navigator.userAgent);
return md;
});
我建议使用 RequireJS 中的 paths 配置将 mobiledetect 设置为 URL,就像这样。请注意,“.js”不在 URL 中。 RequireJS 将自动添加“.js”扩展名。
require.config({
paths: {
'mobiledetect': 'https://cdnjs.cloudflare.com/ajax/libs/mobile-detect/1.3.6/mobile-detect.min'
}
});
require(['mobiledetect'], function (MobileDetect) {
var md = new MobileDetect(window.navigator.userAgent);
if (md.mobile() || md.phone() || md.tablet()) {
alert('Mobile Device');
}
else {
alert('Must be a desktop?');
}
});
查看此 JSFiddle example 以查看代码的运行情况。您将收到一条警报,说明您是在使用移动浏览器还是桌面浏览器。
此外,参数 mobiledetect
应该是 MobileDetect
以匹配 new MobileDetect
调用。