Вывод кода функции и результата работы.
Здравствуйте, пишу функцию, которая должна выводить в одно поле код функции, а во второе, результат работы этой же функции.
Возник вопрос, выводимый код получается в одну строку, то-есть плохо читаем, как можно сделать переносы строк в нужных местах?, к примеру что бы код выводился точно так же как построен в файле js? И еще вопрос, есть ли возможность раскрасить разные участки выводимого кода, по аналогии как это делают, к примеру текстовые редакторы? <div class="code"></div> <div class="result"></div> 'use strict' let result = document.querySelector('.result'); let code = document.querySelector('.code'); let sum; function calc(){ sum = 20 + 15 * 2 / 2; test(sum); } function test(sum){ result.innerHTML = sum; } calc(); var codeOut = new calc(); code.innerHTML = codeOut.constructor; |
Цитата:
<!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <!-- <script src='https://code.jquery.com/jquery-latest.js'></script> <script src="https://code.angularjs.org/1.3.9/angular.min.js"></script> <script src="https://code.angularjs.org/1.3.9/angular-route.js"></script> --> <style type='text/css'> </style> <script type='text/javascript'> document.addEventListener("DOMContentLoaded",function(){ var result = document.querySelector('.result'); var code = document.querySelector('.code'); var sum; function calc(){ sum = 20 + 15 * 2 / 2; test(sum); } function test(sum){ result.innerHTML = sum; } calc(); var codeOut = new calc(); var html=codeOut.constructor.toString(); html=html.replace(/\n/g,'<br />'); code.innerHTML = html; }); </script> </head> <body> <div class="code"></div> <div class="result"></div> </body> </html> |
Цитата:
|
Цитата:
<!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <!-- <script src='https://code.jquery.com/jquery-latest.js'></script> <script src="https://code.angularjs.org/1.3.9/angular.min.js"></script> <script src="https://code.angularjs.org/1.3.9/angular-route.js"></script> --> <style type='text/css'> .number { color: blue; } .operation { color: red; } .words { font-style: italic; font-weight: bold; } .hooks { color: green; } </style> <script type='text/javascript'> document.addEventListener("DOMContentLoaded",function(){ var result = document.querySelector('.result'); var code = document.querySelector('.code'); var sum; function calc(){ sum = 20 + 15 * 2 / 2; return test(sum); } function test(sum){ result.innerHTML = sum; } calc(); var codeOut = new calc(); var html=codeOut.constructor.toString(); html=html.replace(/\t+\}$/,'}'); html=html.replace(/([-+\/*=])/g,'<span class="operation">$1</span>'); html=html.replace(/(function|return)/g,'<span class="words">$1</span>'); html=html.replace(/([\(\)\{\}\[\]])/g,'<span class="hooks">$1</span>'); html=html.replace(/(\d+)/g,'<span class="number">$1</span>'); html=html.replace(/\n/g,'<br />'); html=html.replace(/\t/g,' '); code.innerHTML = html; }); </script> </head> <body> <div class="code"></div> <div class="result"></div> </body> </html> |
Цитата:
Цитата:
Код без элемента <code> семантически недопустим. Согласно спецификации HTML5, рекомендуемый способ определения языка кода является класс language-xxxx. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/themes/prism-tomorrow.css"> <style> :not(pre) > code[class*="language-"] { display: block; padding: 1em; white-space: pre; } </style> </head> <body> <code class="language-javascript"> function calc() { let sum = 20 + 15 * 2 / 2; return sum; } calc(); </code> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/prism.js"></script> <script> for(const code of document.querySelectorAll("code[class*='language-javascript']")) { const p = document.createElement("p"); code.after(p); p.textContent = eval(code.textContent); } </script> </body> </html> Хотя весь код можно выполнить в песочнице <iframe sandbox> Цитата:
|
Цитата:
Мне твое занудство не интересно... :no: |
Цитата:
Я посоветовал человеку адекватное решение проблемы, которое можно использовать в production... Цитата:
ksa, у меня к вам просьба, чтобы вы удаляли из шаблона код, который не имеет отношения к делу, перед отправкой ваших ответов. Заранее благодарю! |
Спасибо
|
Часовой пояс GMT +3, время: 22:47. |