From 2cbb516059066dd671b43371630518022bdf6be6 Mon Sep 17 00:00:00 2001 From: Roman Hotsiy Date: Wed, 23 Mar 2016 23:16:30 +0200 Subject: [PATCH] url parameter for demo page (fixes #22) --- demo/main.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/demo/main.js b/demo/main.js index 836eaa45..2762004b 100644 --- a/demo/main.js +++ b/demo/main.js @@ -5,9 +5,31 @@ var schemaUrlInput = document.getElementById('schema-url-input'); schemaUrlForm.addEventListener('submit', function(event) { event.preventDefault(); - Redoc.init(schemaUrlInput.value); + event.stopPropagation(); + location.search = updateQueryStringParameter(location.search, 'url', schemaUrlInput.value) return false; }) + var url = window.location.search.match(/url=([^&]+)/); + if (url && url.length > 1) { + url = decodeURIComponent(url[1]); + document.getElementsByTagName('redoc')[0].setAttribute('spec-url', url); + schemaUrlInput.value = url; + } + + function updateQueryStringParameter(uri, key, value) { + var re = new RegExp("([?|&])" + key + "=.*?(&|#|$)", "i"); + if (uri.match(re)) { + return uri.replace(re, '$1' + key + "=" + value + '$2'); + } else { + var hash = ''; + if( uri.indexOf('#') !== -1 ){ + hash = uri.replace(/.*#/, '#'); + uri = uri.replace(/#.*/, ''); + } + var separator = uri.indexOf('?') !== -1 ? "&" : "?"; + return uri + separator + key + "=" + value + hash; + } + } //window.redocDebugMode = true; })();