它清除了在依赖项之前加载jquery的概念。 我把它调整为requrejs。控制台没有错误。 但是两个js文件都被加载了(fyjsfies)。
但不是requrejs依赖项。
我的代码是这样的......
(function (window, document, callback) {
var j, d;
var loaded = false;
if(!(j = window.require) || callback(j, loaded)) {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "full_https_path_myjsfile.js";
script.onload = script.onreadystatechange = function () {
if(!loaded && (!(d = this.readyState) || d == "loaded" || d == "complete")) {
callback((j = window.require).noConflict(1), loaded = true);
j(script).remove();
}
};
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "myjsfile.js";
$("#someElement").append(script);
}
})(window, document, function ($, require_loaded) {
// Widget code here
alert('i m here');
require(["jquery", "model2", "model3", "model4"], function ($, model1, model2, model3) {});
});
警告未被调用为什么???
答案 0 :(得分:2)
你不需要这个hack来加载jQuery或其他任何东西。 You can configure RequireJS别名为路径的依赖项,尤其是那些没有为RequireJS格式化的依赖项。
require.config({
paths : {
'jQuery' : 'path/to/jQuery.min.js'
}
});
require(['jQuery'],function($){
//jQuery is loaded
//$ is either the global jQuery or jQuery if it was AMD formatted
});
答案 1 :(得分:0)
问题是require脚本被添加到DOM但没有加载。因此onReadyStateChanged
未被解雇。要解决此问题,请使用document.documentElement.childNodes[0].appendChild(script)
代替