source: Dev/branches/rest-dojo-ui/client/dojo/tests/back.html @ 263

Last change on this file since 263 was 256, checked in by hendrikvanantwerpen, 13 years ago

Reworked project structure based on REST interaction and Dojo library. As
soon as this is stable, the old jQueryUI branch can be removed (it's
kept for reference).

File size: 3.9 KB
Line 
1<html>
2<head>
3        <script language="JavaScript" type="text/javascript">
4                // Dojo configuration
5                djConfig = {
6                        isDebug: true,
7                        dojoIframeHistoryUrl: "../../resources/iframe_history.html" //for xdomain
8                };
9        </script>
10        <script type="text/javascript"
11                                        src="../dojo.js"
12                                        djConfig="isDebug:true, dojoIframeHistoryUrl: '../resources/iframe_history.html'"></script>
13        <!--script type="text/javascript" src="../back.js"></script-->
14        <script type="text/javascript">
15                require(["dojo/main","dojo/back"], function(dojo, back){       
16                ApplicationState = function(stateData, outputDivId, backForwardOutputDivId, bookmarkValue){
17                        this.stateData = stateData;
18                        this.outputDivId = outputDivId;
19                        this.backForwardOutputDivId = backForwardOutputDivId;
20                        this.changeUrl = bookmarkValue || false;
21                };
22       
23                dojo.extend(ApplicationState, {
24                        back: function(){
25                                this.showBackForwardMessage("BACK for State Data: " + this.stateData);
26                                this.showStateData();
27                        },
28                        forward: function(){
29                                this.showBackForwardMessage("FORWARD for State Data: " + this.stateData);
30                                this.showStateData();
31                        },
32                        showStateData: function(){
33                                dojo.byId(this.outputDivId).innerHTML += this.stateData + '<br />';
34                        },
35                        showBackForwardMessage: function(message){
36                                dojo.byId(this.backForwardOutputDivId).innerHTML += message + '<br />';
37                        }
38                });
39               
40                var data = {
41                        link0: "This is the initial state (page first loaded)",
42                        "link with spaces": "This is data for a state with spaces",
43                        "link%20with%20encoded": "This is data for a state with encoded bits",
44                        "link+with+pluses": "This is data for a state with pluses",
45                        link1: "This is data for link 1",
46                        link2: "This is data for link 2",
47                        link3: "This is data for link 3",
48                        link4: "This is data for link 4",
49                        link5: "This is data for link 5",
50                        link6: "This is data for link 6",
51                        link7: "This is data for link 7"
52                };
53
54                dojo.global.goNav = function goNav(id){
55                        var appState = new ApplicationState(data[id], "output", "dataOutput", id);
56                        appState.showStateData();
57                        dojo.back.addToHistory(appState);
58                }
59
60                dojo.addOnLoad(function(){
61                        var appState = new ApplicationState(data["link0"], "output", "dataOutput");
62                        appState.showStateData();
63                        dojo.back.setInitialState(appState);
64                });
65                });
66        </script>
67</head>
68<body>
69        <script type="text/javascript">
70                require(["dojo/back"], function(back){back.init();});
71        </script>
72        <div style="padding-bottom: 20px; width: 100%; border-bottom: 1px solid gray">
73        <h3>dojo.back test</h3>
74       
75       
76        <p>This page tests the dojo.back back/forward code.</p>
77       
78        <p>The buttons that start with "Link" on them don't use any dojo.xhr* calls,
79        just JS data already in the page.</p>
80       
81        <ul>
82                <li>Don't test this page using local disk for MSIE. MSIE will not
83                create a history list for iframe_history.html if served from a file:
84                URL. Serve the test pages from a web server to test in that browser.</li>
85                <li>Safari 2.0.3+ (and probably 1.3.2+): Only the back button works OK
86                (not the forward button).</li>
87                <li>Opera 8.5.3: Does not work.</li>
88                <li>Konqueror: Unknown. The latest may have Safari's behavior.</li>
89        </ul>
90        </div>
91        <div style="float:left; padding: 20px">
92                <button onclick="goNav('link1')">Link 1</button><br />
93                <button onclick="goNav('link with spaces')">Link with Spaces</button><br />
94                <button onclick="goNav('link%20with%20encoded')">Link with Encoded</button><br />
95                <button onclick="goNav('link+with+pluses')">Link with Pluses</button><br />
96                <button onclick="goNav('link3')">Link 3</button><br />
97                <button onclick="goNav('link4')">Link 4</button><br />
98                <button onclick="goNav('link5')">Link 5</button><br />
99                <button onclick="goNav('link6')">Link 6</button><br />
100                <button onclick="goNav('link7')">Link 7</button><br />
101        </div>
102        <div style="float: left; padding: 20px">
103                <b>Data Output:</b><br />
104                <div id="output"></div>
105                <hr />
106                <i>Back/Forward Info:</i><br />
107                <div id="dataOutput"></div>
108        </div>
109</body>
110</html>
Note: See TracBrowser for help on using the repository browser.