diff --git a/docs/index.js b/docs/index.js
index 3a7f6fa..973c4f1 100644
--- a/docs/index.js
+++ b/docs/index.js
@@ -26,8 +26,9 @@
}
const renderers = {
- "application/ld+json": "recipe",
- "javascript": "bookmarklet",
+ "application/ld+json": {script:"recipe"},
+ "javascript": {script:"bookmarklet"},
+ "web3": {script:"web3", mode:"frame"},
}
window.addEventListener("message", function(e) {
@@ -95,7 +96,7 @@
renderMode = "download";
}
- const renderer = info.params?.render || renderers[info.mediatype];
+ const renderer = info.params?.render || renderers[info.mediatype].script;
if (renderer) {
var script = renderer;
if (script.indexOf("/") == -1) script = location.origin + '/render/' + script + '.js'
@@ -116,7 +117,7 @@
let scheme = fragment.substring(0,colon);
let renderer = renderers[scheme];
if (renderer) {
- return renderContentWithScript(renderer, title, fragment, fragment);
+ return renderContentWithScript(renderer.script, title, fragment, fragment);
}
return window.location.replace(fragment);
}
@@ -177,14 +178,16 @@
};
- const SCRIPT_LOADER = `data:text/html,`
+ const SCRIPT_LOADER = ``
function renderContentWithScript(script, title, body, url) {
if (script.indexOf("/") == -1) script = location.origin + '/render/' + script + '.js'
iframe.onload = (() => {
iframe.contentWindow.postMessage({script, url, title, body}, "*");
delete iframe.onload
});
- iframe.src = SCRIPT_LOADER;
+ // writeDocContent(iframe.contentWindow.document, SCRIPT_LOADER)
+ // iframe.srcdoc = SCRIPT_LOADER;
+ iframe.src = "data:text/html," + SCRIPT_LOADER;
}
function writeDocContent(doc, content) {
diff --git a/docs/render.js b/docs/render.js
index 1a2d231..4c4b16f 100644
--- a/docs/render.js
+++ b/docs/render.js
@@ -1,16 +1,26 @@
window.el = function (tagName, attrs, ...children) {
let l = document.createElement(tagName);
Object.entries(attrs).forEach(([k,v]) => l[k] = v);
- children.forEach((c) => l.appendChild(c));
+ children.forEach((c) => l.appendChild(typeof c == "string" ? document.createTextNode(c) : c));
return l;
}
-function loadScript(src) {
- document.head.appendChild(el("script", { src }));
- document.onload = () => {
- document.write("hi");
+function loadScript(src, callback) {
+ let script = el("script", { src });
+ script.addEventListener('load', function(e) {
+ console.log("Loaded", src);
+ if (callback) callback(e);
+ });
+ document.head.appendChild(script);
+}
- }
+function async(u, c) {
+ var d = document, t = 'script',
+ o = d.createElement(t),
+ s = d.getElementsByTagName(t)[0];
+ o.src = '//' + u;
+ if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
+ s.parentNode.insertBefore(o, s);
}
function loadSyle(href) {
@@ -21,7 +31,6 @@ window.addEventListener("message", function(e) {
var base = el('base', {href: e.data.script});
document.head.appendChild(base);
-
window.params = e.data;
window.params.origin = e.origin;
console.log("Rendering with", e.data.script, e.data)
diff --git a/docs/render/recipe.css b/docs/render/recipe.css
index 3a7977b..fbdc030 100644
--- a/docs/render/recipe.css
+++ b/docs/render/recipe.css
@@ -91,7 +91,8 @@ span.number {
text-align: center;
font-size: 10px;
line-height: 16px;
- opacity:0.7
+ opacity:0.7;
+ display:none;
}
.number.big {
font-size:8px;