Избавить код от функций (для вникания ибо знания JS≈0)
Насколько я понимаю, эта программа (которая получилась) начинает свой цикл во время нажатия первой клавиши и заканчивается после каждого последнего нажатия. Время начинает свой отсчёт с начала первого нажатия и длится столько времени ввода, пока человек решает остановиться, и раз остановка после каждого следующего ввода фиксируется как "время окончания". Если нажата мышь в нижнем поле после этого - тогда показывается результат ("время окончания" - время начала цикла).
<script type="text/javascript"> var timing = { st: null, en: null, tx: null }; // start, end, textbox function initpr() { timing.tx = document.getElementById('prin'); var tx = timing.tx; tx.onkeypress = function () { timing.st = timing.en = new Date(); timing.tx.onkeypress = function (en) { if (!en) en = event; timing.en = new Date(); } } } function clc() { r = document.getElementById('resultpr'); //результат deltams = timing.en.getTime() - timing.st.getTime(); chars = timing.tx.value.length; cpms = chars / deltams; snippets = [chars, " chars (in ", deltams, " ms): ", cpms, " cpms"]; r.innerHTML = snippets.join(""); initpr(); } </script> <form name="foo" onsubmit="return false;"> <textarea id="prin"></textarea> <br /> <input id="btnclc" /> <span id="resultpr"></span> </form> <script type="text/javascript"> document.getElementById('btnclc').onclick = clc; initpr(); </script> Код рабочий. http://lanother.tk/rcc.php Обкарнал до минимума (lanother.tk/) для максимума понимания в минималистичности. Было 5 функций (lanother.tk/rc.php) сейчас стало только 2 с именем. Но всё равно, нижняя функция clc вызывает в самом конце себя верхнюю initpr. И вот в ней загвоздка: если поиск initpr, то получается что их три а я хочу код мотолит и последняя функция фактически уже станит вся программа. В итоге: <script> alert( my program ); //no functions </script> <form> </form> end. Алерт это то что я знаю из начала каждой книжки - в принципе для меня это JS (то есть джаваскрипт программа). По onClick вызывалось бы всё тело программы. Я бы его разбил на строчки и сделал бы ещё компактней. (Я слабо программировал на языках и не доходил до функций, например на асме саброутины (хоть я его и больше знаю) .. до них надо было ещё дожить :) ). Хотя бы может кто знает, как убрать 3 функции одна-рыбка-в-другой. Очень угнетает. Внутри initpr ...=function... |
Часовой пояс GMT +3, время: 00:19. |