~caneypuggies/reformedchurcheslocator/couchapp-backbone

« back to all changes in this revision

Viewing changes to _attachments/js/vendor/requirejs/tests/afterload.html

  • Committer: Tim Black
  • Date: 2013-09-16 22:50:16 UTC
  • Revision ID: tim@alwaysreformed.com-20130916225016-zk8jiba25z33ew7h
Versioned Bower vendor directory

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE html>
 
2
<html>
 
3
<head>
 
4
    <title>require.js: After Load</title>
 
5
    <script type="text/javascript" src="doh/runner.js"></script>
 
6
    <script type="text/javascript" src="doh/_browserRunner.js"></script>
 
7
    <script type="text/javascript">
 
8
    var d, s, head;
 
9
 
 
10
    function goRequire() {
 
11
        //Need a hack to trigger require.pageLoaded() for pre Firefox 3.6 browsers.
 
12
        var ff = parseFloat(navigator.userAgent.split("Firefox/")[1]) || null;
 
13
        if (ff && ff < 3.6) {
 
14
            require.pageLoaded();
 
15
        }
 
16
 
 
17
        require({
 
18
                paths: {
 
19
                    domReady: "../../domReady/domReady"
 
20
                }
 
21
            },
 
22
            ["require", "simple", "domReady"],
 
23
            function (require, simple, domReady) {
 
24
                domReady(function() {
 
25
                    doh.is("blue", simple.color);
 
26
 
 
27
                    //Now test another script getting loaded will see
 
28
                    //document.readyState === "complete".
 
29
                    var s = document.createElement("script");
 
30
                    s.src = "afterloadreadystate.js";
 
31
                    s.charset = "utf-8";
 
32
                    head.appendChild(s);
 
33
                });
 
34
            }
 
35
        );
 
36
    }
 
37
 
 
38
    function loadRequire() {
 
39
        var readyRegExp = /complete|loaded/;
 
40
        function onScriptLoad(evt) {
 
41
            var node = evt.target || evt.srcElement;
 
42
            if (evt.type === "load" || readyRegExp.test(node.readyState)) {
 
43
                //Clean up script binding, otherwise, Opera in particular
 
44
                //may trigger it again.
 
45
                if (node.removeEventListener) {
 
46
                    node.removeEventListener("load", onScriptLoad, false);
 
47
                } else {
 
48
                    //Probably IE.
 
49
                    node.detachEvent("onreadystatechange", onScriptLoad);
 
50
                }
 
51
                goRequire();
 
52
            }
 
53
        };
 
54
 
 
55
        //Create script tag for require.js
 
56
        s = document.createElement("script");
 
57
        s.src = "../require.js";
 
58
        s.charset = "utf-8";
 
59
 
 
60
        //Set up load listener.
 
61
        if (s.addEventListener) {
 
62
            s.addEventListener("load", onScriptLoad, false);
 
63
        } else {
 
64
            //Probably IE.
 
65
            s.attachEvent("onreadystatechange", onScriptLoad);
 
66
        }
 
67
 
 
68
        head = (document.getElementsByTagName("head")[0] ||
 
69
                document.getElementsByTagName("html")[0]);
 
70
        head.appendChild(s);
 
71
    }
 
72
 
 
73
    doh.register(
 
74
        "afterload",
 
75
        [
 
76
            {
 
77
                name: "afterload",
 
78
                timeout: 5000,
 
79
                runTest: function() {
 
80
                    d = new doh.Deferred();
 
81
                    return d;
 
82
                }
 
83
            }
 
84
        ]
 
85
    );
 
86
    doh.run();
 
87
 
 
88
    </script>
 
89
</head>
 
90
<body onload="loadRequire()">
 
91
    <h1>require.js: After Load Test</h1>
 
92
    <p>Tests adding require after the page loads, and tests that require.js patches
 
93
    up document.readyState for Firefox less than 3.6.</p>
 
94
    <p>Check console for messages</p>
 
95
</body>
 
96
</html>