Cross Reference: /yui3/src/app/tests/manual/ios-page-cache.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove<!DOCTYPE html>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove<html>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove<head>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <title>Router Mobile Safari Test</title>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <script src="/build/yui/yui.js"></script>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove</head>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove<body>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <h1>Router Mobile Safari Test</h1>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <h2>Description</h2>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <p>Router state is not properly restored on Mobile Safari when visiting an external link and coming back to the page. Desktop Safari behaves correctly. The quick hacky solution is to reload on the pageshow event.</p>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <h2>Steps to Reproduce</h2>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <ul>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <li>Click "External" link</li>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <li>Browser back button</li>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <li>Click "Internal" link</li>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <li>Notice error: "undefined"</li>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove </ul>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <h2>Links</h2>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <ul>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <li id="test1"><a href="#/foo">Internal</a></li>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <li id="test2"><a href="http://www.yahoo.com">External</a></li>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove </ul>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove <script type="text/javascript">
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove var Y = YUI().use('node', 'router', function (Y) {
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove Y.config.win.addEventListener("pageshow", function (e) {
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove if (e.persisted) {
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove console.log('loaded from page cache');
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove }
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove }, false);
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove var router = new Y.Router({
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove html5: false,
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove root: Y.config.win.location.pathname,
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove routes: [
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove {path: '/', callback: function () {
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove console.log('/');
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove }},
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove {path: '/foo', callback: function () {
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove console.log('/foo');
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove }}
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove ]
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove });
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove router.dispatch();
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove });
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove </script>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove</body>
7dfbbf759aae9856f6ecc64a3f6e886385843627Ryan Grove</html>