Javascript 异步加载qUnit

Javascript 异步加载qUnit,javascript,jquery,asynchronous,dependency-injection,qunit,Javascript,Jquery,Asynchronous,Dependency Injection,Qunit,我正在尝试在js中加载QUnit,但QUnit.js中的addevent函数从未启动,只是无法工作: var appendQUnit = document.createElement('script'); appendQUnit.src = 'js/utility/qunit/qunit.js'; appendQUnit.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(appendQ

我正在尝试在js中加载QUnit,但QUnit.js中的addevent函数从未启动,只是无法工作:

var appendQUnit = document.createElement('script'); 
appendQUnit.src = 'js/utility/qunit/qunit.js';
appendQUnit.type = 'text/javascript'; 
document.getElementsByTagName('head')[0].appendChild(appendQUnit); 
您可以使用jquery的,例如:

$.getScript('js/utility/qunit/qunit.js', function() {
    // here you can handle the qunit code
});

因为浏览器总是以异步模式加载javascript文件,所以您需要一些回调来放置处理新加载的js代码的代码。

您可能还需要调用QUnit.load()来初始化QUnit:

$.getScript('js/utility/qunit/qunit.js', function(){
QUnit.load();
// here you can handle the qunit code
});

在代码中或作为书签使用以下内容:

代码 小书签 javascript:void(函数foo(){var head=document.getElementsByTagName(“head”)[0];var qUnitJS=document.createElement(“脚本”);var qUnitCSS=document.createElement(“链接”);qUnitCSS.rel=“样式表”qUnitCSS.type=“text/css”qUnitJS.src=”http://qunitjs.com/resources/qunit.js“head.appendChild(qUnitJS);head.appendChild(qUnitCSS);qUnitCSS.href=”http://qunitjs.com/resources/qunit.css“qUnitJS.onload=函数(){};}()) 在Firefox中,将
about:config
中的
security.mixed\u content.block\u active\u content
设置为false,以bookmarklet的形式运行

参考资料


我能问一下你为什么要这样加载qunit吗?+1
load()
在当前版本中没有文档记录,所以我不确定要相信它到什么程度,但在尝试了几个小时我能找到的一切之后,这是唯一让qunit和Requirejs配合得很好的东西。谢谢。我使用的是
QUnit.init();QUnit.start()。我得到了测试,但没有用户代理或选项。
void(function foo()
  {
  /* get head element */
  var head=document.getElementsByTagName("head")[0];

  /* create script and link elements */
  var qUnitJS = document.createElement("script");
  var qUnitCSS = document.createElement("link");

  /* link rel and type attributes required for lazy loading */
  qUnitCSS.rel="stylesheet";
  qUnitCSS.type="text/css";

  /* define script src attribute to lazy load */
  qUnitJS.src = "http://qunitjs.com/resources/qunit.js";

  /* append script and link elements */
  head.appendChild(qUnitJS);
  head.appendChild(qUnitCSS);

  /* define link href after DOM insertion to lazy load */
  qUnitCSS.href="http://qunitjs.com/resources/qunit.css";

  /* call tests after QUnit loads */
  qUnitJS.onload = function () {};
  }() )
javascript:void(function foo(){var head=document.getElementsByTagName("head")[0]; var qUnitJS = document.createElement("script"); var qUnitCSS = document.createElement("link"); qUnitCSS.rel="stylesheet"; qUnitCSS.type="text/css"; qUnitJS.src = "http://qunitjs.com/resources/qunit.js"; head.appendChild(qUnitJS); head.appendChild(qUnitCSS); qUnitCSS.href="http://qunitjs.com/resources/qunit.css"; qUnitJS.onload = function () {};}() )