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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

Demon

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

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

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

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

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

Full 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> не отрабатывает.

Всего записей: 597 | Зарегистр. 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.
 
Возможно ли отсюда выцарапать это? Там, насколько я понял, вроде бы сначала попиксельно берётся инфа из двух рисунков, а мне надо, чтоб только один рисунок брался с экрана, а остальные рисунки сравнивались  без открытия? Также не нужно сравнение размеров файла, обрезка их.

Всего записей: 2232 | Зарегистр. 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 вытащить нужные данные со страницы.

Всего записей: 15686 | Зарегистр. 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 штатный разраб в другие технич. проекты).

Всего записей: 960 | Зарегистр. 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 мб, к примеру, но все зависит от конкретного файла.

Всего записей: 15686 | Зарегистр. 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 запрос, чтобы не заливать большой файл.

Всего записей: 15686 | Зарегистр. 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 - сразу.  

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

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

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



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

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

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

Всего записей: 1470 | Зарегистр. 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;
}

Всего записей: 1470 | Зарегистр. 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

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

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

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

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

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

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

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

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

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



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

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

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

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

https://beautifier.io/
 

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

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

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

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

Всего записей: 15686 | Зарегистр. 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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru