OLD | NEW |
1 <html> | 1 <html> |
2 <head> | 2 <head> |
3 <title>Preloader</title> | 3 <title>Preloader</title> |
4 | 4 |
5 <script> | 5 <script> |
6 function ExtractGetParameterBadlyAndInsecurely(param, defaultValue) { | 6 function ExtractGetParameterBadlyAndInsecurely(param, defaultValue) { |
7 var re = RegExp('[&?]' + param + '=([^&?#]*)'); | 7 var re = RegExp('[&?]' + param + '=([^&?#]*)'); |
8 var result = re.exec(document.location); | 8 var result = re.exec(document.location); |
9 if (result) | 9 if (result) |
10 return result[1]; | 10 return result[1]; |
11 return defaultValue; | 11 return defaultValue; |
12 } | 12 } |
13 | 13 |
14 var linksToInsert = ExtractGetParameterBadlyAndInsecurely('links_to_insert', 1); | 14 var numLinksToInsert = |
15 var linksToRemove = ExtractGetParameterBadlyAndInsecurely('links_to_remove', 1); | 15 ExtractGetParameterBadlyAndInsecurely('links_to_insert', 1); |
16 | 16 |
17 function RemoveLinkElementsAndNavigate() { | 17 var receivedPrerenderStartEvents = []; |
18 for (var i = 1; i <= linksToRemove; ++i) { | 18 var receivedPrerenderStopEvents = []; |
19 var link = document.getElementById('prerenderElement' + i); | 19 |
20 link.parentElement.removeChild(link); | 20 function PrerenderStartHandlerForLink(index) { |
21 } | 21 receivedPrerenderStartEvents[index] = true; |
22 document.location = 'REPLACE_WITH_DESTINATION_URL'; | 22 } |
| 23 |
| 24 function PrerenderStopHandlerForLink(index) { |
| 25 receivedPrerenderStopEvents[index] = true; |
| 26 } |
| 27 |
| 28 function RemoveLinkElement(index) { |
| 29 var link = document.getElementById('prerenderElement' + index); |
| 30 link.parentElement.removeChild(link); |
23 } | 31 } |
24 </script> | 32 </script> |
25 | |
26 </head> | 33 </head> |
27 <body> | 34 <body> |
28 <script> | 35 <script> |
29 for (var i = 1; i <= linksToInsert; ++i) { | 36 for (var i = 0; i < numLinksToInsert; ++i) { |
30 document.write( | 37 document.write( |
31 '<link id="prerenderElement' + i + | 38 '<link id="prerenderElement' + i + |
32 '" rel="prerender" href="REPLACE_WITH_PRERENDER_URL"/>'); | 39 '" rel="prerender" href="REPLACE_WITH_PRERENDER_URL"/>'); |
| 40 var link = document.getElementById('prerenderElement' + i); |
| 41 link.addEventListener('webkitprerenderstart', |
| 42 PrerenderStartHandlerForLink.bind(null, i), false); |
| 43 link.addEventListener('webkitprerenderstop', |
| 44 PrerenderStopHandlerForLink.bind(null, i), false); |
33 } | 45 } |
34 </script> | 46 </script> |
35 <a href="REPLACE_WITH_DESTINATION_URL">Link To Click</a> | 47 <a id="toClick" href="REPLACE_WITH_DESTINATION_URL">Link To Click For First Prer
ender</a> |
36 </body> | 48 </body> |
37 </html> | 49 </html> |
OLD | NEW |