Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » вопросы по javascript

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 69 70 71 72 73 74 75 76 77 78 79 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

Открыть новую тему     Написать ответ в эту тему

Demon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
что значит "независимо"? id вообще то должен быть уникальный на странице.

Не понял смысл этой фразы. Я слово "независимо" не употреблял.
Цитата:
$('input[name="tt"]:checked').val();

 Благодарю. Все работает.

Всего записей: 612 | Зарегистр. 03-10-2001 | Отправлено: 20:11 05-07-2023
Demon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
если хотите собрать данные - есть .serialize() для формы.

Спасибо. Это тоже работает.
 
 
Добавлено:
Ну, не знаком я с JS.....
Есть форма:
        <form method="post" action="contact.php" name="contactform" id="contactform" autocomplete="off">
          <fieldset>
            <label for="name" accesskey="U"><span class="required">Your Name</span></label>
            <input name="name" type="text" id="name" title="Your Name" />
            <label for="email" accesskey="E"><span class="required">Email</span></label>
            <input name="email" type="text" id="email" title="Email" />
            <label for="comments" accesskey="C"><span class="required">Tell us what you think!</span></label>
            <textarea name="comments" id="comments" title="Tell us what you think!"></textarea>
            <input type="submit" class="submit" id="submit" value="Submit" />
            <span id="message"></span>
          </fieldset>
        </form>
Есть JS:
jQuery(document).ready(function(){
"use strict";
    $('#contactform').submit(function(){
 
        var action = $(this).attr('action');
 
        $("#message").fadeOut(0,function() {
        $('#message').hide();
 
         $('#submit')
            .attr('disabled','disabled');
 
        $.post(action, {
            name: $('#name').val(),
            email: $('#email').val(),
//            phone: $('#phone').val(),
            comments: $('#comments').val()
        },
            function(data){
                document.getElementById('message').innerHTML = data;
                $('#message').fadeIn(200);
                $('.hide').hide(0);
                $('#submit').removeAttr('disabled');
//                if(data.match('success') != null) $('#contactform').fadeOut('slow');
 
            }
        );
 
        });
 
        return false;
 
    });
 
});
При активации Submit отрабатывает contact.php, все, что он выводит попадает в message и отображается на странице. Что я должен вывести в contact.php, что бы отобразилась совершенно другая страница?
 
Меня даже устроила ситуация вывести некоторое сообщение. а потом переадресация.
вывод: <SCRIPT>window.location.href = 'index.html';</SCRIPT> не отрабатывает.

Всего записей: 612 | Зарегистр. 03-10-2001 | Отправлено: 15:31 07-07-2023 | Исправлено: Demon, 16:24 07-07-2023
king_stiven

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть такой html
 

Код:
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   
  <title>Image downloading and comparing</title>
 </head>
<body>
 
<div align="center">
 <form method="post" enctype="multipart/form-data">
  <table align="center" border="0" cellpadding="10" cellspacing="0" width="90%">
   <tbody><tr>
    <td width="50%">
     Рисунок 1 (до 600x600): <input type="file" id="file1">
    </td>
    <td width="50%">
     Рисунок 2 (до 600x600): <input type="file" id="file2">
    </td>
   </tr>
   <tr>
    <td width="50%" align="center">
     <canvas id="imgCanvas1" width="600" height="600" style="background-color: #999999;">
      Извините, канва недоступна в вашем бруазере
     </canvas>
    </td>
    <td width="50%" align="center">
     <canvas id="imgCanvas2" width="600" height="600" style="background-color: #999999;">
      Извините, канва недоступна в вашем бруазере
     </canvas>
    </td>
   </tr>
   <tr>
    <td colspan="2" align="center">
     <div id="imgResult"></div>
    </td>
   </tr>
   </tbody></table>
 </form>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
 <script type="text/javascript">
  var img1, img2;
  var ctx1, ctx2;
  var loaded1 = false, loaded2 = false;
  var img1_width, img2_width, img1_height, img2_height;
 
 
<!-- ЗДЕСЬ ОСНОВНАЯ СВЕРКА ФАЙЛОВ -->
  function compareImages () { //Сравнить рисунки img1 и img2
   var result = document.getElementById('imgResult');
   var string = '';
 
   if (loaded1==false || loaded2==false) {
    string = 'Не загружены 2 файла';
   }
   else if (img1_width != img2_width || img1_height != img2_height) {
    string = 'Для сравнения размеры рисунков должны совпадать<br>Загружено: ('+
     img1_width + 'x' + img1_height + ') и ('+
     img2_width + 'x' + img2_height + ')';
   }
   else {
    var diff = 0;
    var img1data = ctx1.getImageData(0, 0, img1_width, img1_height).data;
    var img2data = ctx2.getImageData(0, 0, img2_width, img2_height).data;
    for (var i = 0; i < img1data.length / 4; i++) {
     diff += Math.abs(img1data[4 * i + 0] - img2data[4 * i + 0]) / 255;
     diff += Math.abs(img1data[4 * i + 1] - img2data[4 * i + 1]) / 255;
     diff += Math.abs(img1data[4 * i + 2] - img2data[4 * i + 2]) / 255;
    }
    var r = 100*diff/(img1.width * img1.height * 3);
    string = "Разница между рисунками: " + r.toFixed(5)+'%'; <!-- РЕЗУЛЬТАТ ВЫВОДИТСЯ В ПРОЦЕНТАХ -->
    //loaded1 = loaded2 = false;
   }
 
   result.innerHTML = string;
  }
 
  function resizeImage (img) { //Изменить размеры рисунка img, здесь вроде убрал лишнее
   var img_width = img.width;
   var img_height = img.height;
   var new_x = 0, new_y = 0;
    return [img_width, img_height];
  }
 
<!-- ЗДЕСЬ ПЕРВЫЙ ФАЙЛ ОБРАБАТЫВАЕТСЯ -->
  $("#file1").change (function (e) {
   var URL = window.webkitURL || window.URL;
   var url = URL.createObjectURL(e.target.files[0]);
   img1 = new Image();
   var canvas1 = document.getElementById('imgCanvas1');
   img1.src = url;
   img1.onload = function() {
    img1_width = img1.width;
    img1_height = img1.height;
    var resizeResults = resizeImage (img1);  
    img1_width = resizeResults[0]; img1_height = resizeResults[1];
    ctx1 = canvas1.getContext('2d');
    ctx1.fillStyle="#999999";  
    ctx1.fillRect(0, 0, canvas1.width, canvas1.height);
    ctx1.drawImage (img1, 0, 0, img1_width, img1_height);
    loaded1 = true;
    compareImages();
   }
  });
<!-- ЗДЕСЬ ВТОРОЙ ФАЙЛ ОБРАБАТЫВАЕТСЯ -->
  $("#file2").change (function (e) {
   var URL = window.webkitURL || window.URL;
   var url = URL.createObjectURL(e.target.files[0]);
   img2 = new Image();
   var canvas2 = document.getElementById('imgCanvas2');
   img2.src = url;
   img2.onload = function() {
    img2_width = img2.width;
    img2_height = img2.height;
    var resizeResults = resizeImage (img2);  
    img2_width = resizeResults[0]; img2_height = resizeResults[1];
    ctx2 = canvas2.getContext('2d');
    ctx2.fillStyle="#999999";  
    ctx2.fillRect(0, 0, canvas2.width, canvas2.height);
    ctx2.drawImage (img2, 0, 0, img2_width, img2_height);
    loaded2 = true;
    compareImages();
   }
  });
 </script>
 <noscript><div>Извините, требуется включённый Javascript для работы приложения!</div></noscript>
</div>
 
</body></html>

 
Там выбираешь два небольших файла рисунка и сравниваешь их на похожесть. Но мне нужно так:  
1 Я в своём auto it скрипте нажимаю на кнопочку,  
2 Захватывается не большой кусочек экрана по абсолютным координатам(открыта страница браузера)
3 Далее этот рисунок должен сравниться с несколькими другими файлами рисунков такого же размера(ширина, высота, )
4 Результат в процентах передаётся дальше в AUTOit.
 
Возможно ли отсюда выцарапать это? Там, насколько я понял, вроде бы сначала попиксельно берётся инфа из двух рисунков, а мне надо, чтоб только один рисунок брался с экрана, а остальные рисунки сравнивались  без открытия? Также не нужно сравнение размеров файла, обрезка их.

Всего записей: 2237 | Зарегистр. 17-07-2006 | Отправлено: 16:29 07-07-2023 | Исправлено: king_stiven, 16:52 07-07-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Demon

Цитата:
Что я должен вывести в contact.php, что бы отобразилась совершенно другая страница?

что хотите. возвращаете тот код, что хотите вставить куда то на странице.
 

Цитата:
вывод: <SCRIPT>window.location.href = 'index.html';</SCRIPT> не отрабатывает.
 

и не будет, js код не обрабатывается при AJAX запросе.
получаете данные, отображаете, включаете таймер на переадресацию через setTimeout
 

Цитата:
           function(data){
                document.getElementById('message').innerHTML = data;
                $('#message').fadeIn(200);
                $('.hide').hide(0);
                $('#submit').removeAttr('disabled');
//                if(data.match('success') != null) $('#contactform').fadeOut('slow');
 
            }

в этом блоке.
 
king_stiven

Цитата:
Захватывается не большой кусочек экрана по абсолютным координатам(открыта страница браузера)

js этим не занимается.
 

Цитата:
4 Результат в процентах передаётся дальше в AUTOit.

и напрямую не взаимодействует. это уже задача AutoIt вытащить нужные данные со страницы.

Всего записей: 16612 | Зарегистр. 20-09-2014 | Отправлено: 20:31 07-07-2023
E_123



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую!
Есть файл .xls (пример, в реальном будут тысячи строк), нужно построчно по нему:  
 
а) На https://newsfilter.io/latest/news:  

в поле Search вносим тикер (столбец A) > Enter = появится страница со списком новостей по данному тикеру.
 
б) Пропускаем новости, начинающиеся с буквенно-циферных блоков в начале заголовков новостей типа "SC 13D/A", "4", "42B5", "8-K" и т.д. (см. скрин, алгоритм как пропускать такие новости вероятно станет понятен после анализа этих блоков в html-коде страницы и определению закономерности и отличий от других блоков).
 
в) При нажатии на заголовок новости (3-ий столбец страницы) появится всплывающее окно с текстом новости (см. скрин): копируем заголовок новости, после него ставим ":" и добавляем начало текста новости, суммарно до 200 слов или 1500 символов (в идеале конечно до смыслового конца реферата новости в её начале, но думаю это сложно реализуемо) - вставляем в столбец News (J) нашего файла в соответствующую строку даты.
 
г) Если на дату будет несколько новостей (как например 17.07.2023 у ABOS на скрине) - добавляем их в новые строки перед исходной (в них дублируем только тикер и дату, без цифр в столбцах C..I) по времени выхода (старые наверху, более новые - ниже).  
 
д) Если %High > 40%, то кроме новости в эту дату добавляем строку с новостью предыдущего дня (в примере добавлена новость 16.07.2023 т.к. за 17.07.2023 %High=80,1%). Это необходимо т.к. такие новости бывает срабатывают с задержкой). Большинство дат вообще будет без новостей (в нашем примере это: 11-14.07.2023) - соответственно ячейку J у таких оставляем пустой.  
 
   Т.к. актуальные "рабочие" новости постоянно меняются, то процедуру придётся повторять каждые 1-2 недели => чтобы не напрягать из-за каждого чиха разработчика, каждый блок программы и вводимые параметры (адрес сайта, наименования полей и собираемых с них параметров и т.д.) должны быть подписаны комментами (что есть что и что делает). По срокам и финансовым ожиданиям за труд - в лс (в перспективе периодическая потребность в подобных задачах автоматизации + развитие этого + 1 штатный разраб в другие технич. проекты).

Всего записей: 974 | Зарегистр. 05-03-2020 | Отправлено: 19:18 28-07-2023 | Исправлено: E_123, 11:39 29-07-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
https://github.com/buzz/mediainfo.js

 
Потому что это не работает?
 
 
   
 

Код:
 
 
<input type="file" id="fileInput">
<div> duration: <span id='sp'></span>
  <div>
   
   <script type="text/javascript" src="https://unpkg.com/mediainfo.js"></script>
    <script type="text/javascript" src="example.js"></script>
   
 <script>
      
     var fileEl = document.querySelector("input");
      
     fileEl.onchange = function(e) {
          
         document.querySelector("div")
         .innerHTML = "";
          
         var file = e.target.files[0]; // selected file
          
         if (!file) {
             console.log("nothing here");
             return;
         }
          
         console.log(file);
         console.log(file.size);
          
         var mime = file.type, // store mime for later
         rd = new FileReader(); // create a FileReader
          
         rd.onload = function(e) { // when file has read:
              
             var blob = new Blob([e.target.result], {
                 type: mime
             }), // create a blob of buffer
             url = (URL || webkitURL).createObjectURL(blob), // create o-URL of blob
             video = document.createElement("video"); // create video element
              
             video.preload = "metadata"; // preload setting
              
             video.addEventListener("loadedmetadata", function() { // when enough data loads
                 document.querySelector("div")
                 .innerHTML = "Duration: " + video.duration + "s" + " <br>Height: " + video.videoHeight; // show duration
                 (URL || webkitURL).revokeObjectURL(url); // clean up
                  
                 // ... continue from here ...
                  
             });
             video.src = url; // start video load
         };
          
         var chunk = file.slice(0, 500000); // .5MB
         rd.readAsArrayBuffer(chunk); // read file object
          
     };
 </script>
 
 

Всего записей: 629 | Зарегистр. 05-05-2014 | Отправлено: 10:06 21-08-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Потому что это не работает?

потому что зависит от типа файла, где в нем хранятся метаданные.
в коде режутся первые 500 кб, но не всегда все хранится в этой области.
можно увеличить размер до 5 мб, к примеру, но все зависит от конкретного файла.

Всего записей: 16612 | Зарегистр. 20-09-2014 | Отправлено: 22:28 21-08-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
теперь понимаю
Однако мне нужен код PHP, я должен хранить данные в базе данных,
 
Мой код, размещенный в потоке PHP работает, но не с входными файлами больших файлов

Всего записей: 629 | Зарегистр. 05-05-2014 | Отправлено: 08:46 22-08-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
Однако мне нужен код PHP, я должен хранить данные в базе данных,

берете нужные данные и отправляете на сервер через AJAX запрос, чтобы не заливать большой файл.

Всего записей: 16612 | Зарегистр. 20-09-2014 | Отправлено: 09:00 22-08-2023
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
приветствую,  
есть небольшая проблема - вот тут -  
https://www.hein.eu/parkplatzmarkierung - чуть проскроллить вниз - самый первый элемент с лейблом Top Seller - label на всю карточку растянут. Последующие labels как видно все нормально, их размеры проссчитыватются точно, в зависимости от размеров карточки.  
Я вижу, что в первом элементе width и height контейнера label рассчитаны такими большими, и в следующих элементах все норм.
В принципе, можно конечно в css max-width стандартно для всех установить, но тогда будет всегда одинаковые размеры, независимо от того, сколько карточек в ряду (например, сейчас если проскроллить еще ниже, есть ряд с 4 и с 5 карточками, там где 5 размеры label как видно меньше).
Хотелось бы понять причину такого поведения.  
пс. В google chrome  у меня проблема возникает после перезагрузки страницы, в firefox - сразу.  

Всего записей: 2157 | Зарегистр. 18-06-2006 | Отправлено: 12:29 11-09-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum
навскидку.. проблема в том, что второй лейбл вставляется тогда, когда картинки уже отображаются.
первый же - когда нет ничего, поэтому и размеры всего рассчитываются неправильно, js выставляет размеры картинки top seller.
 
ps: если насильно сделать display: block для второго элемента сразу, то получится идентичная картинка
   

Всего записей: 16612 | Зарегистр. 20-09-2014 | Отправлено: 20:01 11-09-2023 | Исправлено: Mavrikii, 01:00 12-09-2023
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
спасибо, понял. т.е. для корректного отображения дать таймаут или мониторить mutationObserver пока картинки не появятся?  
воообще я сейчас потестил, проблема только если товары в slick-slider отображаются. Поэтому проще именно для картинок лейблов в слайдере установить css max-width.

Всего записей: 2157 | Зарегистр. 18-06-2006 | Отправлено: 11:26 12-09-2023
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Всего записей: 1520 | Зарегистр. 05-04-2010 | Отправлено: 14:28 17-09-2023 | Исправлено: D1D1D1D, 14:29 17-09-2023
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет. В таблице виджета по ссылке несколько колонок, в последней из которых (с классом .e), имеется кнопка:
 
https://i.imgur.com/qRDMMSk.jpg
 
Как средствами javascript менять цвет этой кнопки при наведении курсора на колонку? С CSS-стилем ниже это срабатывает для отдельной ячейки, но не всей колонки:
 

Код:
.e:hover > div .dx-header-filter {
   color: #FAFA01 !important;
}

Всего записей: 1520 | Зарегистр. 05-04-2010 | Отправлено: 17:59 17-09-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D
ну и что мешало предыдущее сообщение исправить?
 
jQuery есть?
 
например так

Код:
<table>
  <tr>
    <td>1</td><td>2</td>
  </tr>
  <tr>
    <td><button>3</button></td><td>4</td>
  </tr>
</table>

 

Код:
$('table').on('mouseenter', 'td', function() {
  var ind = $(this).index() + 1;
  $('table td:nth-child(' + ind + ') button').addClass('highlight');
}).on('mouseleave', 'td', function() {
  var ind = $(this).index() + 1;
  $('table td:nth-child(' + ind + ') button').removeClass('highlight');  
});

ну и написать класс подсветки .highlight

Всего записей: 16612 | Зарегистр. 20-09-2014 | Отправлено: 21:39 17-09-2023 | Исправлено: Mavrikii, 22:47 17-09-2023
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
https://jsfiddle.net/Lqbf5y0t/
 
Затрудняюсь применить на реальном примере, так как там кнопка не button, а SPAN с классом.

Всего записей: 1520 | Зарегистр. 05-04-2010 | Отправлено: 22:04 17-09-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
 так как там кнопка не button, а SPAN с классом

и что?? вместо button написать span.класс

Всего записей: 16612 | Зарегистр. 20-09-2014 | Отправлено: 22:14 17-09-2023
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Неожиданно — работает, спасибо!

Всего записей: 1520 | Зарегистр. 05-04-2010 | Отправлено: 22:27 17-09-2023 | Исправлено: D1D1D1D, 22:27 17-09-2023
Goodwin7



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я совсем не программист но интересуюсь )  Не нашёл куда более подходяще написать, потому спрошу тут.  Собственно вопрос знатокам:
 
Есть уже готовы скрипт в виде одной строки, который надо просмотреть. возможно что-то подправить. Интересует Есть ли какой редактор чтобы  мог его разобрать, типо в "красивые исходники", в более-менее читабельный вид ?  
Перепробовал много разных но ни один не может его правильно отобразить.
Если такой редактор есть то подскажите, нужно чтоб эта прога была поменьше, то-есть не некое типа msворд и работала на вин xp, была без фреймворков, питонов и подобного. Версия неважна, главное чтоб выполняло такие функции.  
 
Так же если например что-то форматирует такой скрипт в многострочный, его можно в таком виде использовать в расширении или надо обязательно опять превратить в одну строку ?
 
Так же интересует Что это так оптимизирует-упаковывает в одну строку ?  
(если чё, то скрипт из расширения firefox)

Всего записей: 117 | Зарегистр. 10-12-2022 | Отправлено: 00:23 23-09-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Goodwin7

Цитата:
Есть ли какой редактор чтобы  мог его разобрать, типо в "красивые исходники", в более-менее читабельный вид ?  

https://beautifier.io/
 

Цитата:
Перепробовал много разных но ни один не может его правильно отобразить.

значит обфускация, нужно выполнять часть кода.
https://deobfuscate.io/
 

Цитата:
Так же интересует Что это так оптимизирует-упаковывает в одну строку ?  

без примера сказать нельзя.

Всего записей: 16612 | Зарегистр. 20-09-2014 | Отправлено: 00:26 23-09-2023 | Исправлено: Mavrikii, 00:28 23-09-2023
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 69 70 71 72 73 74 75 76 77 78 79 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

Компьютерный форум Ru.Board » Интернет » Web-программирование » вопросы по javascript


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru