Delphin911
Newbie-
Posts
5 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by Delphin911
-
Без вызова Alert("текст") не применяется значение.
Delphin911 replied to Delphin911's question in JavaScript
К стати если на компе во всех броузерах работает, то на смартфоне почему-то эта динамически строящаяся таблица не отрисовывается! В чем может быть дело? Продолжаю бороться с задержкой при выводе результата и начинаю думать, что дело не в ней. Вот что написал почитав просторы инета: unction GetList(submit) { var fl; var server = "/list?dir=/"; send_request(submit, server); //alert("Считываем список файлов..."); //fl = submit.value; //if (fl.length) {return fl;} //else {console.log("wait...");setTimeout(GetList, 500);} sleep(5000); return submit.value; } function sleep(milliseconds) { const date = Date.now(); let currentDate = null; do { currentDate = Date.now(); } while (currentDate - date < milliseconds); } Да, реально проходит 5 секунд ожидания, но на выходе пусто. Вот там еще закомментированные строки, тоже не работают. Толко alert спасает ситуацию. Ну и к стати мне кажется, что на смартфоне и alert не помогает. Пустая страница. -
Без вызова Alert("текст") не применяется значение.
Delphin911 replied to Delphin911's question in JavaScript
console.log не помогает. Попробовал сейчас после вашего совета. Оно даже в консоль не выводится. function SaveConfig(submit) { var server = "/saveSettings?ssid=" + val('ssid') + "&password=" + encodeURIComponent(val('password')) + "&passwordAP=" + encodeURIComponent(val('passwordAP')) + "&ssidAP=" + val('ssidAP') + "&SSDP=" + val('SSDP') + "&IPAP=" + val('IPAP'); send_request(submit,server); console.log("Изменения сохранены."); location.reload(); } Вот у меня вместо console.log был alert и все срабатывало. А тут видно перезагрузка срабатывает раньше и не дает сохраниться и в лог консоли отправить. -
Без вызова Alert("текст") не применяется значение.
Delphin911 replied to Delphin911's question in JavaScript
Это я понял. А что делать то? -
Сразу скажу за основу брал чужой код. Есть основная страничка страничка. На ней меню, по нажатию на ссылки в котором открываются другие странички. Так вот по открытию одной из них считываются имена файлов, расположенных на устройстве. Они и считываются. function GetList(submit) { var server = "/list?dir=/"; send_request(submit, server); alert("блаблабла"); alert('2' + submit.value); } function send_request(submit,server){ var request = new XMLHttpRequest(); request.open("GET", server, true); request.send(); save_status(submit,request); //alert('1' + submit.value); } function save_status(submit,request){ var new_submit; var old_submit = submit.value; request.onreadystatechange = function() { if (request.readyState != 4) return; submit.value = request.responseText; new_submit = request.responseText; setTimeout(function(){ submit.value=old_submit; submit_disabled(false); }, 1000); } submit.value = 'Подождите...'; submit.value = new_submit; submit_disabled(true); } function submit_disabled(request){ var inputs = document.getElementsByTagName("input"); for (var i = 0; i < inputs.length; i++) { if (inputs[i].type === 'submit') {inputs[i].disabled = request;} } } Первая функция отправляет запрос на устройство. Устройство считывает список файлов и возвращает в виде массива типа [{"type":"dir","name":"first"},{"type":"file","name":"second"}] Но вот если в первой функции убрать всплывающее окошко по алерту с блаблабла, то alert('2' + submit.value); выдает "2undefined". Можно конечно вместо блаблабла написать вумную фразу, типа "Данные собираются". Но как-то это неправильно. Подскажите, что сделать, чтобы без этого окна применялось значение. Я всю голову сломал. Тут что-то с последовательностью действий. Например вот если я вставлю в какую нибудь функцию send_request тоже какой-нибудь алерт, то алерт из первой функции выскакивает первый! В других языках программирования тот алерт, что в вызываемой йункции первым бы отработал. А тут такая фигня. Не могу понять этого!
-
Народ, нашел простенькую менюшку контекстную. Ну собственно принцип у всех один. Вот сама менюшка <div id="main_menu"> <div onClick="jump(this);" id="openb">Открыть файл</div> <div onClick="jump(this);" id="delb">Удалить файл</div> </div> А вот обработка <script> function mousemove(event) { if (document.attachEvent != null) { mouse_x = window.event.pageX; mouse_y = window.event.pageY; } else if (!document.attachEvent && document.addEventListener) { mouse_x = event.pageX; mouse_y = event.pageY; } } function show_menu(e) { mousemove(e); menu_obj.style.left = mouse_x + "px"; menu_obj.style.top = mouse_y + "px"; menu_obj.style.visibility = "visible"; return false; } function hide_menu(e) { menu_obj.style.visibility = "hidden"; } function jump(e) { alert(e.getAttribute("title"));window.location=e.getAttribute("title");} //document.oncontextmenu = show_menu; document.onclick = hide_menu; </script> Проблема вот в чем. Я генерю табличку со списком файлов <table id="myTable"> <tbody></tbody> </table> function CreateView(data) { for (var i = 0; i < data.length; i++) { var tr = document.createElement('tr'); var td = tr.appendChild(document.createElement('td')); td.style.width = "30%"; td.innerHTML = data[i]['type']; td = tr.appendChild(document.createElement('td')); td.style.width = "70%"; td.innerHTML = data[i]['name']; td.oncontextmenu = show_menu; td.onmouseup = m_up(this); document.getElementById('myTable').tBodies[0].appendChild(tr); } } Так вот по нажатию правой кнопкой на строчку таблички мне надо получить менюшку с 2 строчками: прочитать файл и удалить файл. Надо из таблички имя файла передать. Никак не получается. У show_menu ничего в параметрах подсьавить не дает.