我的js文件中有以下内容,由requirejs
调用 height:auto!important;
我得到未捕获的ReferenceError:在我的main.js文件中通过路径引用外部文件时未定义MobileDetect
我已尝试直接在文件顶部定义它,但没有运气。我错过了什么让脚本不加载并给我这个对象?
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;
});
答案 0 :(得分:1)
我建议使用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
来电。