0

在阅读了这个黑客之后

这清除了在依赖项之前加载 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) {});
});

警报没有被称为为什么???

4

2 回答 2

2

你不需要这个 hack 来加载 jQuery 或其他任何东西。您可以将 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
});
于 2013-05-10T09:29:27.833 回答
0

问题是 require 脚本已添加到 DOM 但未加载。因此onReadyStateChanged没有被解雇。要解决此问题,请document.documentElement.childNodes[0].appendChild(script)改用

于 2013-05-10T09:37:21.217 回答