общее
This commit is contained in:
@@ -4,9 +4,29 @@ function Редактор(события, имяОбласти)
|
|||||||
{
|
{
|
||||||
this.установитьAce();
|
this.установитьAce();
|
||||||
this.улавливатьЗавершениеРедактирования();
|
this.улавливатьЗавершениеРедактирования();
|
||||||
|
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(событие)
|
this.обработатьСобытие = function(событие)
|
||||||
{
|
{
|
||||||
if (событие == "завершили редактирование")
|
if (событие == "завершили редактирование")
|
||||||
@@ -15,17 +35,35 @@ function Редактор(события, имяОбласти)
|
|||||||
}
|
}
|
||||||
else if (событие == "код корректен")
|
else if (событие == "код корректен")
|
||||||
{
|
{
|
||||||
this.преобразоватьВZ64();
|
this.исполнитьКод();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.преобразоватьВZ64 = function()
|
this.разобратьПараметрыЗапуска = function()
|
||||||
{
|
{
|
||||||
var содержимое = this.ace.session.getValue();
|
this.параметрыЗапуска = {};
|
||||||
var в = this.вZ64(содержимое);
|
var запрос = window.location.search.substring(1);
|
||||||
var из = this.изZ64(в);
|
var аргументы = запрос.split("&");
|
||||||
/**/console.debug("ИГР вZ64/изZ64/было/стало", в, из, из.length, в.length);
|
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()
|
this.установитьAce = function()
|
||||||
@@ -33,6 +71,7 @@ function Редактор(события, имяОбласти)
|
|||||||
var область = document.getElementById(имяОбласти);
|
var область = document.getElementById(имяОбласти);
|
||||||
this.ace = window.ace.edit(имяОбласти);
|
this.ace = window.ace.edit(имяОбласти);
|
||||||
this.ace.session.setMode("ace/mode/javascript");
|
this.ace.session.setMode("ace/mode/javascript");
|
||||||
|
this.ace.session.setUseWrapMode(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.улавливатьЗавершениеРедактирования = function()
|
this.улавливатьЗавершениеРедактирования = function()
|
||||||
|
|||||||
@@ -4,11 +4,11 @@
|
|||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||||
<title>M-3.0</title>
|
<title>M-3.0</title>
|
||||||
|
|
||||||
|
<script src="../общее/base64-js/base64js.min.js"></script>
|
||||||
|
<script src="../общее/pako/pako.min.js"></script>
|
||||||
<script src="ace/ace.js"></script>
|
<script src="ace/ace.js"></script>
|
||||||
<script src="ace/mode-javascript.js"></script>
|
<script src="ace/mode-javascript.js"></script>
|
||||||
<script src="ace/worker-javascript.js"></script>
|
<script src="ace/worker-javascript.js"></script>
|
||||||
<script src="base64-js/base64js.min.js"></script>
|
|
||||||
<script src="pako/pako.min.js"></script>
|
|
||||||
<link rel="stylesheet" type="text/css" href="uikit/uikit.min.css" />
|
<link rel="stylesheet" type="text/css" href="uikit/uikit.min.css" />
|
||||||
<script src="uikit/uikit.min.js"></script>
|
<script src="uikit/uikit.min.js"></script>
|
||||||
<script src="uikit/uikit-icons.min.js"></script>
|
<script src="uikit/uikit-icons.min.js"></script>
|
||||||
|
|||||||
Reference in New Issue
Block a user