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>
 |