diff --git a/docs/multi.html b/docs/multi.html
index a887e5b8ee02..cd8cdf83e5be 100644
--- a/docs/multi.html
+++ b/docs/multi.html
@@ -146,10 +146,36 @@
ifrm.src = select.value + flags + h;
}
function handleHash() {
- var route = (window.location.hash || "#");
- var parts = route.replace(/^#/, '').split(':|:', 2);
- updateSrc(left, selectLeft, parts[0]);
- updateSrc(right, selectRight, parts[1]);
+ var route = decodeURIComponent(window.location.hash || "#");
+
+ if (route.indexOf(":|:") !== -1) {
+ var parts = route.replace(/^#/, '').split(':|:', 2);
+ updateSrc(left, selectLeft, parts[0]);
+ updateSrc(right, selectRight, parts[1]);
+ }
+ else {
+ route = route.replace(/^#/, '');
+ var params = new URLSearchParams(route);
+ if (params.has("left")) {
+ updateSrc(left, selectLeft, params.get("left"));
+ }
+ else if (params.has("leftscript")) {
+ updateSrc(left, selectLeft, "pub:" + params.get("leftscript"));
+ }
+ else {
+ updateSrc(left, selectLeft);
+ }
+ if (params.has("right")) {
+ updateSrc(right, selectRight, params.get("right"));
+ }
+ else if (params.has("rightscript")) {
+ updateSrc(right, selectRight, "pub:" + params.get("rightscript"));
+ }
+ else {
+ updateSrc(right, selectRight);
+ }
+ }
+
window.history.replaceState('', '', '#')
}
diff --git a/webapp/public/multi.html b/webapp/public/multi.html
index bbe86044d2a8..63ba1afa212a 100644
--- a/webapp/public/multi.html
+++ b/webapp/public/multi.html
@@ -70,10 +70,36 @@
function handleHash() {
var hashLeft = ""
var hashRight = ""
- var route = (window.location.hash || "#");
- var parts = route.replace(/^#/, '').split(':|:', 2);
- updateSrc(left, parts[0]);
- updateSrc(right, parts[1]);
+ var route = decodeURIComponent(window.location.hash || "#");
+
+ if (route.indexOf(":|:") !== -1) {
+ var parts = route.replace(/^#/, '').split(':|:', 2);
+ updateSrc(left, parts[0]);
+ updateSrc(right, parts[1]);
+ }
+ else {
+ route = route.replace(/^#/, '');
+ var params = new URLSearchParams(route);
+ if (params.has("left")) {
+ updateSrc(left, params.get("left"));
+ }
+ else if (params.has("leftscript")) {
+ updateSrc(left, "pub:" + params.get("leftscript"));
+ }
+ else {
+ updateSrc(left);
+ }
+ if (params.has("right")) {
+ updateSrc(right, params.get("right"));
+ }
+ else if (params.has("rightscript")) {
+ updateSrc(right, "pub:" + params.get("rightscript"));
+ }
+ else {
+ updateSrc(right);
+ }
+ }
+
window.history.replaceState('', '', '#')
}
function handleMessage(msg) {