pokemon-showdown-client/crossprotocol.html
Guangcong Luo 367314c81a Fix HTTPS support in IE11
Apparently IE11 doesn't support location.origin. I assumed it had
wider support than it actually had.
2015-12-16 01:25:07 -05:00

62 lines
1.4 KiB
HTML

<!DOCTYPE html>
<meta charset="utf-8" />
<script src="/js/lib/jquery-2.1.4.min.js"></script>
<script>
var yourOrigin = 'http://play.pokemonshowdown.com';
var myOrigin = 'https://play.pokemonshowdown.com';
function postMessage(message) {
return window.parent.postMessage(message, yourOrigin);
}
function messageHandler(e) {
if (e.origin !== yourOrigin) return;
var data = e.data;
// data's first char:
// T: store teams
// P: store prefs
// R: GET request
// S: POST request
switch (data.charAt(0)) {
case 'T':
localStorage.setItem('showdown_teams', data.substr(1));
break;
case 'P':
localStorage.setItem('showdown_prefs', data.substr(1));
break;
case 'R':
case 'S':
var rq = JSON.parse(data.substr(1));
$[(data.charAt(0) === 'R' ? 'get' : 'post')](
rq[0],
rq[1],
function(ajaxdata) {
postMessage('r' + JSON.stringify([rq[2], ajaxdata]));
},
rq[3]
);
break;
}
}
window.addEventListener('message', messageHandler);
var testVal = '' + Date.now();
try {
localStorage.setItem('showdown_allow3p', testVal);
} catch (err) {}
if (localStorage.getItem('showdown_allow3p') === testVal) {
postMessage('a1');
postMessage('p' + localStorage.getItem('showdown_prefs'));
postMessage('t' + localStorage.getItem('showdown_teams'));
} else {
postMessage('a0');
}
if (location.protocol + '//' + location.hostname !== myOrigin) {
// This happens sometimes, but we'll pretend it doesn't
}
</script>