我正在加载第三方脚本,只是在已加载到的网站上创建叠加层。它工作正常,但使用require.js的网站似乎有间歇性问题,我假设异步加载一些js文件。有没有任何类型的回调或方法在DOM中创建一个模块作为一个监听器来查看require.js是否已完成加载?
我尝试了这个但是甚至没有关闭:
define(function() {
alert('test');
return {};
});
和
define('myModule',
function () {
var myModule = {
doStuff:function(){
console.log('Yay! Stuff');
}
};
return myModule;
});
console.log(myModule);
答案 0 :(得分:0)
我最后只是创建了一个辅助的require.config文件,并且如果检测到require则加载带有require的模块,似乎工作正常。
if(typeof require === 'function') {
var base = 'http://' + someDomainVar;
function getJSTreeURL() {
var url = base + '/js/libs/jstree.min';
return url;
}
function getModuleURL() {
var url = base + '/module';
return url;
}
var reqTwo = require.config({
context: "instance2",
baseUrl: "instance2",
paths: {
'jq': 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min',
'jqTree': getJSTreeURL(),
'module': getModuleURL()
},
shim: {
'jq': {
exports: 'jq'
},
'jqTree': {
deps: ['jq'],
exports: 'jqTree'
},
'module': {
deps: ['jq', 'jqTree'],
exports: 'module'
}
}
});
reqTwo(['require', 'jq', 'jqTree'],
function(require, jq, jqTree) {
setTimeout(function() {
require(['module'],
function(module) {
console.log('loaded');
}
);
}, 0);
});