97 lines
3 KiB
HTML
97 lines
3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>require.js: After Load</title>
|
|
<script type="text/javascript" src="doh/runner.js"></script>
|
|
<script type="text/javascript" src="doh/_browserRunner.js"></script>
|
|
<script type="text/javascript">
|
|
var d, s, head;
|
|
|
|
function goRequire() {
|
|
//Need a hack to trigger require.pageLoaded() for pre Firefox 3.6 browsers.
|
|
var ff = parseFloat(navigator.userAgent.split("Firefox/")[1]) || null;
|
|
if (ff && ff < 3.6) {
|
|
require.pageLoaded();
|
|
}
|
|
|
|
require({
|
|
paths: {
|
|
domReady: "../../domReady/domReady"
|
|
}
|
|
},
|
|
["require", "simple", "domReady"],
|
|
function (require, simple, domReady) {
|
|
domReady(function() {
|
|
doh.is("blue", simple.color);
|
|
|
|
//Now test another script getting loaded will see
|
|
//document.readyState === "complete".
|
|
var s = document.createElement("script");
|
|
s.src = "afterloadreadystate.js";
|
|
s.charset = "utf-8";
|
|
head.appendChild(s);
|
|
});
|
|
}
|
|
);
|
|
}
|
|
|
|
function loadRequire() {
|
|
var readyRegExp = /complete|loaded/;
|
|
function onScriptLoad(evt) {
|
|
var node = evt.target || evt.srcElement;
|
|
if (evt.type === "load" || readyRegExp.test(node.readyState)) {
|
|
//Clean up script binding, otherwise, Opera in particular
|
|
//may trigger it again.
|
|
if (node.removeEventListener) {
|
|
node.removeEventListener("load", onScriptLoad, false);
|
|
} else {
|
|
//Probably IE.
|
|
node.detachEvent("onreadystatechange", onScriptLoad);
|
|
}
|
|
goRequire();
|
|
}
|
|
};
|
|
|
|
//Create script tag for require.js
|
|
s = document.createElement("script");
|
|
s.src = "../require.js";
|
|
s.charset = "utf-8";
|
|
|
|
//Set up load listener.
|
|
if (s.addEventListener) {
|
|
s.addEventListener("load", onScriptLoad, false);
|
|
} else {
|
|
//Probably IE.
|
|
s.attachEvent("onreadystatechange", onScriptLoad);
|
|
}
|
|
|
|
head = (document.getElementsByTagName("head")[0] ||
|
|
document.getElementsByTagName("html")[0]);
|
|
head.appendChild(s);
|
|
}
|
|
|
|
doh.register(
|
|
"afterload",
|
|
[
|
|
{
|
|
name: "afterload",
|
|
timeout: 5000,
|
|
runTest: function() {
|
|
d = new doh.Deferred();
|
|
return d;
|
|
}
|
|
}
|
|
]
|
|
);
|
|
doh.run();
|
|
|
|
</script>
|
|
</head>
|
|
<body onload="loadRequire()">
|
|
<h1>require.js: After Load Test</h1>
|
|
<p>Tests adding require after the page loads, and tests that require.js patches
|
|
up document.readyState for Firefox less than 3.6.</p>
|
|
<p>Check console for messages</p>
|
|
</body>
|
|
</html>
|