blob: c01c21b5e5fe54e61cf6a19a7db2044d3746a918 (
plain)
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
|
/**
* Class for routing between pages
*/
export default class Router {
/**
* @param {Interface} iface Interface for comm. with other objects
*/
constructor(iface) {
iface.addObject(this, 'serverListing', ['routePlay']);
this.iface = iface;
}
/**
* Routes to the play page
* @param {HubConnection} connection Connection to the server
*/
routePlay(connection) {
window.history.pushState('object or string', 'Game Page',
'play#game=' + this.serverName);
fetch('play').then((response) => {
response.text().then((htmlString) => {
// Replace all references, since we're starting one level farther up
htmlString = htmlString.replace(/\.\.\//g, './');
htmlString = /<body>((.)|(\n))*<\/body>/g.exec(htmlString)[0];
htmlString = htmlString.replace(/<script src=".*"><\/script>/, '');
htmlString = htmlString.replace(
/<remove_if_redirected>((.)|\n)*?<\/remove_if_redirected>/g, '');
document.body.innerHTML = htmlString;
let stylesheet = document.createElement('link');
stylesheet.rel = 'stylesheet';
stylesheet.type = 'text/css';
stylesheet.href = './style/play.css';
document.head.appendChild(stylesheet);
this.iface.callMethod('uiMananger', 'initPlay');
for (let ui of this.pageUI) {
ui.refresh();
}
});
});
}
}
|