Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.01.2018, 21:13
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

Вопрос как запустить код программы из контейнера
Вопрос как запустить код программы из контейнера. Я видел решения в интернете с помощью Джерри и php. Джерри не устраивает из за тормозов PHP нет средств для оплаты хостинга. Не может быть, что невозможно запустить просто средствами JS. Вот начал экспериментировать с целью сохранения текущего состояния в программах с canvas, сделал программу записывающею в файл PNG символы, можно воткнуть в одну картинку весь мой сайт, Но как после расшифровки запустить текст html, находящийся в div или write ?
Вот программа шифровки и расшифровки.
http://id190382234-0.myjino.ru/raznoe/textcanvas/ix.htm
Эксперимент поместил на своём техническом сайте. Что понятней было с чего это вдруг мне понадобилось посмотрите пост МОЯ РАСКРАСКА.
Ответить с цитированием
  #2 (permalink)  
Старый 15.01.2018, 10:35
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

var cont = и.сод.innerHTML;
place.insertAdjacentHTML("afterBegin",cont



При каких условиях и в каком браузере должно работать пробовал в
Comodo IceDragon он единственный у меня работает с canvas без сервера выдаёт ошибку place is not defined
);
Ответить с цитированием
  #3 (permalink)  
Старый 15.01.2018, 10:48
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Скрипт приходится вставлять отдельно - insertAdjacentHTML не переваривает тег script
<div id = "place"></div>
<script>
var cont = "<center><p><h2>СОХРАНЕНИЕ ТЕКСТА В ФАЙЛЕ PNG.</h2></p></center><br><button onclick = 'test();'>Проверка работы скрипта</button>"; // это ваш сохраненный текст
place.insertAdjacentHTML("afterBegin",cont);
var jsScript = document.createElement("script");
jsScript.text = "function test(){ alert('Скрипт работает');}";
place.append(jsScript);
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 15.01.2018, 10:52
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

clecar,
place - это id блока, куда вставляется сохраненный фрагмент
У меня в примере это
<div id = "place"></div>

Если не работает, вместо
place.insertAdjacentHTML
можно попробовать
document.querySelector("#place").insertAdjacentHTML
Ответить с цитированием
  #5 (permalink)  
Старый 15.01.2018, 10:58
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

clecar,
Сообщение от clecar
работает с canvas без сервера
А зачем canvas сервер? Это тег html, работает в браузере без всяких серверов.
Ответить с цитированием
  #6 (permalink)  
Старый 15.01.2018, 11:00
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

Да сработало скопировало текст в новый блок, но он как был мёртвым текстом так и остался запуска не произошло.
Ответить с цитированием
  #7 (permalink)  
Старый 15.01.2018, 11:16
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

Сразу не прочитал о скрипте, буду пробовать, при этом я должен изменить
первоначальное правило загрузки в PNG файл.
Ответить с цитированием
  #8 (permalink)  
Старый 15.01.2018, 11:49
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

Зачем canvas сервер? Я в своей программе использую data, в браузерах на базе Хром, без сервера она работать не будет, требуется другой способ загрузки рисунка.
Ответить с цитированием
  #9 (permalink)  
Старый 15.01.2018, 13:06
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

clecar,
Вообще-то вот так работает - ввод исходного текста, кнопки Запомнить и Посмотреть. Насчет исходного файла r1.png - проблема доступа отсюда
<div id = "place"></div>
<div id = "source" style = "display:none">    <center><p><h2>СОХРАНЕНИЕ ТЕКСТА В ФАЙЛЕ PNG.</h2></p></center>
    <img src='http://clecar.ru/fail/cmal.gif' alt='' style='position: absolute; left: 30px;
        top: 10px; width: 80px; cursor: pointer;' onclick='document.location="http://clecar.ru"' />
    <input type="text" id="b" style='position: absolute; background: #faf; top: 60px;
        left: 270px; width: 800px;'>
    <div id='сод' style='position: absolute; background: #fdd; padding: 10px; word-break: break-all;
        overflow-y: scroll; font-size: 18px; top: 110px; left: 270px; width: 800px; height: 500px;'>
    </div>
    <div style='position: absolute; text-align: center; font-size: 18px; background: #ccf;
        top: 110px; left: 10px; width: 250px; height: 500px;'>
        <img id='ш' src='http://id190382234-0.myjino.ru/raznoe/textcanvas/r1.png' />
        <canvas id='прячу' width="100" height="100">
        </canvas><br>
        <br>
        <div id='инф'>
            0</div>
        <br>
        <input type="button" value="очистиь" onclick="прячу.width=прячу.width; сод.innerHTML=''; b.value=''; b.focus();">
        <input type="button" value="запомнить" onclick="тор(); "><br>
        <br>
        <input type="button" value="посмотреть" onclick="дешифратор(); "><br>
        <br>
        <input type="button" value="обновить" onclick="location.reload(); "><br>
        После загрузки этой страницы нажмите <b>обновить</b> затем кнопку <b>посмотреть</b>
    </div>
<script>
    var номер = 0;
    var знак = [];
    var текст = document.querySelector("#прячу").getContext('2d');
    текст.drawImage((ш), 0, 0, 100, 100);
    var imgd = текст.getImageData(0, 0, 100, 100);
    pix = imgd.data;
    var буквы = [' ', 'ё', "й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х", "ъ", "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю", '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '+', '=', ";", "'", '#', '№', '%', '&', '?', '*', '(', ')', '{', '}', '<', '>', '|', '/', ':', '_', ',', '.', '"', 'Ё', 'Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ', 'Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'Э', 'Я', 'Ч', 'С', '', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю', 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m"];
    var знач = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162];
    var k = 0;
    document.querySelector("#b").focus();
    function тор(e) {
        var t = document.querySelector("#b").value;
        document.querySelector("#инф").innerHTML = 'length = ' + t.length;
        var d = t.length;
        for (n = 0, m = 40000; n < m; n += 4) {
            pix[n + 3] = 255;
            pix[n + 1] = 255;
            pix[n + 2] = 0;
            pix[n] = 0;
        }
        var u = 0;
        for (na = 0, ma = 40000; na < ma; na++) {
            k++;
            if (k == 1) { k = 0; na += 3; }
            for (no = 0, mo = 162; no < mo; no++) {
                if (t.charAt(u) == буквы[no]) {
                    pix[na] = знач[no];
                    break;
                }
                if (t.charAt(u) == '[') {
                    pix[na] = 200;
                }
                if (t.charAt(u) == ']') {
                    pix[na] = 199;
                }
                if (t.charAt(u) == '_') {
                    pix[na] = 197;
                }
            }
            текст.putImageData(imgd, 0, 0);
            u++;
            if (u > d) { break; }
        }
    }
    function дешифратор() {
        for (n = 0, m = 40000; n < m; n++) {
            for (na = 0, ma = 162; na < ma; na++) {
                if (pix[n] == знач[na]) {
                    document.querySelector("#сод").innerHTML += буквы[na];
                }
            }
            if (pix[n] == 200) {
                document.querySelector("#сод").innerHTML += '[';
            }
            if (pix[n] == 199) {
                document.querySelector("#сод").innerHTML += ']';
            }
            if (pix[n] == 197) { 
                document.querySelector("#сод").innerHTML += '_'; 
            } 
        } 
        var t = document.querySelector("#сод").innerHTML;
         document.querySelector("#инф").innerHTML = 'length = ' + t.length;
    } </script>
</div>
<script>
var cont = document.querySelector("#source").innerHTML;
document.querySelector("#place").insertAdjacentHTML("afterBegin",cont);
</script>

Это не insertAdjacentHTML, а JS упирался при наличии тега script в строковой константе.

Последний раз редактировалось Dilettante_Pro, 15.01.2018 в 15:14.
Ответить с цитированием
  #10 (permalink)  
Старый 15.01.2018, 16:11
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

Спасибо, но на Джерри, я вряд ли буду переходить, библиотеку не подключал и не буду. Вероятно по этому ваш код на моём компьютере не работает не в одном браузере. Да открывается, текст вводится но script не работает записи в PNG нет. Мой то код ведь сам по себе, стабильно работает с сервером во всех имеющихся у меня браузерах. А браузеры на базе Хром требуют URL BASE 64 поэтому без сервера не работает. На базе Firefox , без проблем. Без библиотеки вероятно теряется imgd.data. Спасибо не очень, но помогли ставлю Вам плюс.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как работает данный код Victor031 Общие вопросы Javascript 4 10.02.2015 07:12
Как подгрузить код JS динамически? zhurchik Общие вопросы Javascript 22 02.02.2015 13:16
Как вызвать свою функцию из «чужого» кода в Java Script, не переписывая «чужой» код? korobochkin Библиотеки/Тулкиты/Фреймворки 2 19.07.2014 15:17
Как правильно прописать свой код в .js Всеми_Любимый Элементы интерфейса 6 23.02.2010 20:34
Вопрос как сделать эту панельку Определённых размеров и свойств. jei jQuery 3 09.06.2009 18:14