diff --git a/3.0/редактор/base64-js/README.md b/3.0/общее/base64-js/README.md similarity index 100% rename from 3.0/редактор/base64-js/README.md rename to 3.0/общее/base64-js/README.md diff --git a/3.0/редактор/base64-js/base64js.min.js b/3.0/общее/base64-js/base64js.min.js similarity index 100% rename from 3.0/редактор/base64-js/base64js.min.js rename to 3.0/общее/base64-js/base64js.min.js diff --git a/3.0/редактор/pako/README.md b/3.0/общее/pako/README.md similarity index 100% rename from 3.0/редактор/pako/README.md rename to 3.0/общее/pako/README.md diff --git a/3.0/редактор/pako/pako.min.js b/3.0/общее/pako/pako.min.js similarity index 100% rename from 3.0/редактор/pako/pako.min.js rename to 3.0/общее/pako/pako.min.js diff --git a/3.0/редактор/100.редактор.js b/3.0/редактор/100.редактор.js index a1e1dd0..2dbad15 100644 --- a/3.0/редактор/100.редактор.js +++ b/3.0/редактор/100.редактор.js @@ -4,9 +4,29 @@ function Редактор(события, имяОбласти) { this.установитьAce(); this.улавливатьЗавершениеРедактирования(); + this.разобратьПараметрыЗапуска(); + this.задатьКодПриЗапуске(); события.подписать(this); }; + this.задатьКодПриЗапуске = function() + { + var z64 = this.параметрыЗапуска["z64"]; + if (z64) + { + var код = this.изZ64(z64); + this.ace.session.setValue(код); + } + }; + + this.исполнитьКод = function() + { + var содержимое = this.ace.session.getValue(); + var z64 = this.вZ64(содержимое); + var путь = window.location.pathname + "?z64=" + z64; + history.pushState(null, "", путь); + }; + this.обработатьСобытие = function(событие) { if (событие == "завершили редактирование") @@ -15,17 +35,35 @@ function Редактор(события, имяОбласти) } else if (событие == "код корректен") { - this.преобразоватьВZ64(); + this.исполнитьКод(); } }; - this.преобразоватьВZ64 = function() + this.разобратьПараметрыЗапуска = function() { - var содержимое = this.ace.session.getValue(); - var в = this.вZ64(содержимое); - var из = this.изZ64(в); -/**/console.debug("ИГР вZ64/изZ64/было/стало", в, из, из.length, в.length); - + this.параметрыЗапуска = {}; + var запрос = window.location.search.substring(1); + var аргументы = запрос.split("&"); + for (var номер in аргументы) + { + var арг = аргументы[номер]; + var позицияЗнака = арг.indexOf("="); + // Лишь ключ. + if (позицияЗнака == -1) + { + var ключ = decodeURIComponent(арг); + this.параметрыЗапуска[ключ] = null; + } + // Ключ со значением. + else + { + var сыройКлюч = арг.slice(0, позицияЗнака); + var сыроеЗначение = арг.slice(позицияЗнака + 1); + var ключ = decodeURIComponent(сыройКлюч); + var значение = decodeURIComponent(сыроеЗначение); + this.параметрыЗапуска[ключ] = значение; + } + } }; this.установитьAce = function() @@ -33,6 +71,7 @@ function Редактор(события, имяОбласти) var область = document.getElementById(имяОбласти); this.ace = window.ace.edit(имяОбласти); this.ace.session.setMode("ace/mode/javascript"); + this.ace.session.setUseWrapMode(true); } this.улавливатьЗавершениеРедактирования = function() diff --git a/3.0/редактор/index.html b/3.0/редактор/index.html index 85986ba..f53fe77 100644 --- a/3.0/редактор/index.html +++ b/3.0/редактор/index.html @@ -4,11 +4,11 @@ M-3.0 + + - -