keep trying to parse the hash until it works

pull/1/head
ansuz 7 years ago
parent a34d1793e0
commit be8ea4102e

@ -1,30 +1,40 @@
// Stage 0, this gets cached which means we can't change it. boot2-sframe.js is changable. // Stage 0, this gets cached which means we can't change it. boot2-sframe.js is changable.
// Note that this file is meant to be executed only inside of a sandbox iframe. // Note that this file is meant to be executed only inside of a sandbox iframe.
;(function () { ;(function () {
var req = JSON.parse(decodeURIComponent(window.location.hash.substring(1))); var afterLoaded = function (req) {
req.cfg = req.cfg || {}; req.cfg = req.cfg || {};
if (req.pfx) { if (req.pfx) {
req.cfg.onNodeCreated = function (node /*, config, module, path*/) { req.cfg.onNodeCreated = function (node /*, config, module, path*/) {
node.setAttribute('src', req.pfx + node.getAttribute('src')); node.setAttribute('src', req.pfx + node.getAttribute('src'));
}; };
} }
require.config(req.cfg); require.config(req.cfg);
var txid = Math.random().toString(16).replace('0.', ''); var txid = Math.random().toString(16).replace('0.', '');
var intr; var intr;
var ready = function () { var ready = function () {
intr = setInterval(function () { intr = setInterval(function () {
if (typeof(txid) !== 'string') { return; } if (typeof(txid) !== 'string') { return; }
window.parent.postMessage(JSON.stringify({ q: 'READY', txid: txid }), '*'); window.parent.postMessage(JSON.stringify({ q: 'READY', txid: txid }), '*');
}, 1); }, 1);
}; };
if (req.req) { require(req.req, ready); } else { ready(); } if (req.req) { require(req.req, ready); } else { ready(); }
var onReply = function (msg) { var onReply = function (msg) {
var data = JSON.parse(msg.data); var data = JSON.parse(msg.data);
if (data.txid !== txid) { return; } if (data.txid !== txid) { return; }
clearInterval(intr); clearInterval(intr);
txid = {}; txid = {};
window.removeEventListener('message', onReply); window.removeEventListener('message', onReply);
require(['/common/sframe-boot2.js'], function () { }); require(['/common/sframe-boot2.js'], function () { });
};
window.addEventListener('message', onReply);
}; };
window.addEventListener('message', onReply);
var intr = setInterval(function () {
try {
var req = JSON.parse(decodeURIComponent(window.location.hash.substring(1)));
clearInterval(intr);
afterLoaded(req);
} catch (e) { console.error(e); }
}, 100);
}()); }());

@ -2,7 +2,7 @@
<html class="cp pad"> <html class="cp pad">
<head> <head>
<meta content="text/html; charset=utf-8" http-equiv="content-type"/> <meta content="text/html; charset=utf-8" http-equiv="content-type"/>
<script async data-bootload="/pad/inner.js" data-main="/common/sframe-boot.js?ver=1.1" src="/bower_components/requirejs/require.js?ver=2.3.5"></script> <script async data-bootload="/pad/inner.js" data-main="/common/sframe-boot.js?ver=1.2" src="/bower_components/requirejs/require.js?ver=2.3.5"></script>
<style> <style>
html, body { html, body {
margin: 0px; margin: 0px;

Loading…
Cancel
Save