pokemon-showdown-client/crossdomain.html
2013-04-08 03:35:45 -07:00

55 lines
1.5 KiB
HTML

<!DOCTYPE html>
<script src="/js/jquery-1.9.0.min.js"></script>
<script src="/js/jquery-cookie.js"></script>
<script src="/js/jquery.json-2.3.min.js"></script>
<script>
(function() {
if (!location.search) return;
var prefix = decodeURIComponent(location.search.substr(1));
if (!(/^[a-zA-Z0-9-_\.]*$/.test(prefix))) return;
var origin = 'http://' + prefix + '.psim.us';
var postMessage = function(message) {
return window.parent.postMessage($.toJSON(message), origin);
};
$(window).on('message', function($e) {
var e = $e.originalEvent;
if (e.origin !== origin) return;
var data = $.parseJSON(e.data);
if (data.username) {
$.cookie('showdown_username', data.username, {expires: 14});
}
if (data.get) {
$.get(data.get[0], function(ajaxdata) {
postMessage({ajax: [data.get[1], ajaxdata]});
}, data.get[2]);
}
if (data.post) {
$.post(data.post[0], data.post[1], function(ajaxdata) {
postMessage({ajax: [data.post[2], ajaxdata]});
}, data.post[3]);
}
if (data.teams) {
localStorage.setItem('showdown_teams', data.teams);
}
if (data.prefs) {
localStorage.setItem('showdown_prefs', data.prefs);
}
});
var message = {init: true};
try {
if (window.localStorage) {
message.teams = localStorage.getItem('showdown_teams');
message.prefs = localStorage.getItem('showdown_prefs');
}
$.cookie('testcookie', 1);
if (!$.cookie('testcookie')) {
message.nothirdparty = true;
}
$.cookie('testcookie', null);
} catch (e) {
message.nothirdparty = true;
}
postMessage(message);
})();
</script>