From 4090c8c498610341d4f2920984a895833d566438 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Mon, 6 Sep 2021 14:14:19 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BE=D0=B1=D1=89=D0=B5=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base64-js/README.md | 0 .../base64-js/base64js.min.js | 0 .../pako/README.md | 0 .../pako/pako.min.js | 0 3.0/редактор/100.редактор.js | 53 ++++++++++++++++--- 3.0/редактор/index.html | 4 +- 6 files changed, 48 insertions(+), 9 deletions(-) rename 3.0/{редактор => общее}/base64-js/README.md (100%) rename 3.0/{редактор => общее}/base64-js/base64js.min.js (100%) rename 3.0/{редактор => общее}/pako/README.md (100%) rename 3.0/{редактор => общее}/pako/pako.min.js (100%) 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 + + - -