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

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

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

Goodwin7



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Цитата:
без примера сказать нельзя.
пример
 

Цитата:
https://beautifier.io/
надо редактор типо блокнота для виндовс. может плагины есть там для AkelPad или подобных ?

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

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Goodwin7
обычная минимизация кода.
в данной ситуации, скорее всего, webpack + terser
 

Цитата:
надо редактор типо блокнота для виндовс.

скачайте оффлайн версию - просто html + js + css и открывайте в браузере
https://sourceforge.net/projects/js-beautifier.mirror/

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 01:22 23-09-2023 | Исправлено: Mavrikii, 01:26 23-09-2023
Goodwin7



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
его надо отредактировать чуть и засунуть назад в расширение.
после beautifier.io такоее прокатит ?  Ведь оно уже будет  не минимизированное.

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

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

Цитата:
его надо отредактировать чуть и засунуть назад в расширение

зачем? минимизация не нужна вообще, чтобы обратно. для публичного использования делается только для того, чтобы уменьшить размер кода.
 
можно любым другими минимизатором ужать.
https://codebeautify.org/minify-js

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 01:28 23-09-2023 | Исправлено: Mavrikii, 01:28 23-09-2023
Goodwin7



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

Цитата:
скачайте оффлайн версию - просто html + js + css и открывайте в браузере  

к сожалению оно автономно не работает.
за остальное Спасибо, удалось распаковать на сайте, хоть и браузер завис на 2 минуты.

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

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

Цитата:
хоть и браузер завис на 2 минуты.

потому что выполняется не на сервере, а в браузере - зависит от мощностей компа и размеров кода.

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 02:16 23-09-2023
zzz528

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ругается TypeError: Array.map(x,y) is not a function
Переделал на Array.from(x).map(y) - не ругается, можно ли так оставить?
 

Всего записей: 1885 | Зарегистр. 20-06-2005 | Отправлено: 21:27 23-09-2023
Mavrikii

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

Цитата:
Ругается TypeError: Array.map(x,y) is not a function

Потому что нет такой функции с двумя аргументами.
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/map
 
Это метод объекта типа массив.
 

Цитата:
можно ли так оставить

Можно. Если x изначально массив, то x.map(y)

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 21:37 23-09-2023
Nick3230

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Нужна помощь в фильтрации статей в программе "RSS Guard".
У неё есть даже небольшая справка по фильтрам.
 
Нужно, чтобы была возможность отфильтровать заголовки статей по некоторым параметрам.
Фильтр №1. По наличию в заголовке статьи слова "[Обновлено]"+фраза (напр. " RSS Guard") и значения (напр. >=200 MB)
 
Т.е., напр. "[Обновлено] Удобная программа для Win 10/11 + : RSS Guard [ENG/Multi] (2023) [Build 12345] [Scene] [Portable] [260.7 MB S:5 L:10]"
 
Фильтр №2. По значению в заголовке больше или равного указанному значению. Например: >=200 KB. (При этом значения могут быть и KB,MB,GB,TB и т.д.)
 
Фильтр №3. По значению в заголовке в диапазоне значений размера. Например, от 300MB до 5GB.
 
Всё это немного усугубляется тем, что значения прописываются по-разному, например, в таком виде:
[4.75GB abc: def:]    [205MB abc: def:]    [2.3GB abc: def:]
[3.11 GB abc: def:]    [1.5 GB]
(где "abc:" "def:" - это м.б. прочий текст)
 
Т.е. записи значений м.б. такими: "1.75GB"; "1.5GB"; "1.75 KB"; "1.5 MB"; "7 GB"; "10MB" (как с пробелом, так и без него).
 
 
 
Есть стандартный фильтр типа "Whitelist" (белый список):

Код:
// This filter accepts only messages whose title
// is on the whitelist.
 
var whitelist = [
  'abc',
  '123'
];
 
function filterMessage() {
  if (whitelist.some(i => msg.title.indexOf(i) != -1)) {
    msg.isImportant = true;
    return MessageObject.Accept;
  } else {
    return MessageObject.Ignore;
  }
}

 
Возможно, его можно как-то адаптировать или вот такой скрипт (но, он правда не работает правильно ):
 

Код:
function filterMessage() {
  if (msg.title >= "200MB|200 MB") {
    msg.isImportant = true;
    return MessageObject.Accept;
  }
  else {
    return MessageObject.Ignore;
  }
}

 
P.S. Желательно также, чтобы была возможность игнорирования регистра, т.е. "[Обновлено]"=="[оБнОвЛеНо]"
 
P.P.S. Очень надеюсь на помощь в правке этих фильтров!

Всего записей: 207 | Зарегистр. 05-12-2006 | Отправлено: 21:57 19-10-2023
Mavrikii

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

Код:
var filter = {
    'title': ['[Обновлено]', 'Rss Guard'],
    'size': {
        'min': null,
        'max': null
    }
}
 
function escapeRegExp(string) {
    return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
 
function size2Bytes(size) {
    var m = (size + '').match(/([\d\.]+)\s*([gmk]?)b/i),
        s = {'g': Math.pow(1024, 3), 'm': Math.pow(1024, 2), 'k': 1024, '': 1};
    if (m)
        return Math.ceil(m[1] * s[m[2].toLowerCase()]);
    else
        return null;
}
 
function parseTitle(title) {
    var m = title.match(/^(.*?)([\d\.]+\s*[gmk]?b)/i);
    if (m)
        return {'title': m[1], 'size': m[2]};
    else
        return {'title': title, 'size': 0};
}
 
function filterMessage() {
    var m = parseTitle(msg.title),
        r = new RegExp(filter.title.map(function(el) { return escapeRegExp(el); }).join('.*'), 'i'),
        s = size2Bytes(m.size);
    if (r.test(m.title)) {
        var passed = true;
        if (filter.size.min != null) {
            passed = s >= size2Bytes(filter.size.min);
        }
        if (filter.size.max != null && passed) {
            passed = s <= size2Bytes(filter.size.max);
        }
        if (passed) {
            msg.isImportant = true;
            return MessageObject.Accept;
        } else {
            return MessageObject.Ignore;        
        }
    } else {
        return MessageObject.Ignore;
    }
}

 
в size и min и max могут быть как цифрами (в байтах), так и строкой ('200 kb', к примеру).
если выставлено в null, то не используется.

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 02:38 20-10-2023
Nick3230

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Огромное Вам спасибо!!! Я даже и не ожидал, что получится столь большой и сложный скрипт!
--------------------------------------------
В результате небольшого тестирования обнаружил, что срабатывает, например на такую строку, где содержится:
[64.6GB S:331 L:95 Gold]
В скрипте поставил любой заголовок, размер до 5 GB.
 
Предполагаю, что это из-за "L:95 Gold" он срабатывает.
1) Возможно ли как-то ещё немного подправить и сделать проверку не по одной букве (напр. B, K, M, G и т.д.), а по 2-м буквам (KB,MB,GB,TB и т.д.). (Правда, проблемы, наверное, могут возникнуть только там где есть байты, т.е. одна буква "B"...).
2) Срабатывает и на пустые статьи, где не указано вообще никакого размера. Можно их тоже исключить?

Всего записей: 207 | Зарегистр. 05-12-2006 | Отправлено: 17:55 20-10-2023
Mavrikii

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

Цитата:
Возможно ли как-то ещё немного подправить и сделать проверку не по одной букве

оно и срабатывает по 2 буквам. исключение, разве что, не знаю может ли быть просто в байтах. может сработать на число и "b" за ним. и добавить TB, поэтому
 

Цитата:
Срабатывает и на пустые статьи, где не указано вообще никакого размера. Можно их тоже исключить?

да, потому что не знал является ли это обязательным.
 

Цитата:
В скрипте поставил любой заголовок, размер до 5 GB.

у меня не срабатывает, размер правильно вытаскивается. показывайте что и как писали в условиях.
 
код поправлен выше.

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 22:18 20-10-2023 | Исправлено: Mavrikii, 23:03 20-10-2023
Nick3230

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

Цитата:
у меня не срабатывает, размер правильно вытаскивается. показывайте что и как писали в условиях.
Условия пишу, например, такие:

Код:
var filter = {
    'title': [''],
    'size': {
        'min': null,
        'max': '5 GB'
    }
}
 


Цитата:
код поправлен выше.

Проверил, ругается почему-то:
"EXISTING articles filtering error: 'TypeError: Cannot call method 'toLowerCase' of undefined'."
 
P.S. Параметры (условия) ставлю такие же...

Всего записей: 207 | Зарегистр. 05-12-2006 | Отправлено: 16:13 22-10-2023
Mavrikii

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

Цитата:
 'title': [''],

Просто
'title': [],
 
 

Цитата:
ругается почему-то

Посмотрю чуть позже. Но, в принципе, можно сделать так
 

Код:
function size2Bytes(size) {
    var m = (size + '').match(/([\d\.]+)\s*([tgmk]?b)\b/i),
        s = {'tb': Math.pow(1024, 4), 'gb': Math.pow(1024, 3), 'mb': Math.pow(1024, 2), 'kb': 1024, 'b': 1};
    if (m)
        return Math.ceil(m[1] * s[m[2].toLowerCase()]);
    else
        return null;
}

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 17:28 22-10-2023
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую,
 
на этом сайте реализована такая фича - когда сайт открыт во вкладке в браузере, при переходе на другую вкладку в покинутой но не закрытой вкладке изменяется title - начинает моргать попеременно  реальный title и "komm zur&#252;ck" как призыв вернуться в эту вкладку. При этом если покинул и вернулся моргать перестает.  
Не могу понять, как это реализовано?

Всего записей: 2155 | Зарегистр. 18-06-2006 | Отправлено: 10:55 23-10-2023 | Исправлено: Weinaum, 10:56 23-10-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum
https://dev.to/j471n/detect-when-users-switch-tabs-using-javascript-3mi3

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 10:57 23-10-2023
Weinaum



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


Всего записей: 2155 | Зарегистр. 18-06-2006 | Отправлено: 19:49 23-10-2023
Nick3230

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Спасибо Вам за подправленную функцию "size2Bytes"!

Цитата:
Но, в принципе, можно сделать так

Теперь программа "RSS Guard" не выдаёт ошибку и статьи (по крайне мере протестированные) правильно отфильтровываются!
(Если будут ещё каки-либо вопросы/проблемы, то сообщу и напишу).

Всего записей: 207 | Зарегистр. 05-12-2006 | Отправлено: 19:29 28-10-2023
Nick3230

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возник ещё совсем небольшой вопрос по поводу переключения radio button и checkbox на ru-board.
 
1) Здесь radio button установлен по умолчанию на "no", а нужно, например, на "yes"
Код:
<input name="preview" type="radio" value="yes">
<input name="preview" type="radio" value="no" checked="">
 

Т.е. по идее должно быть что-то наподобие этого:
document.getElementsByName('preview').value="yes";
 
2) Как правильно поставить checkbox, например здесь:
Код:
<input type="checkbox" name="inicode" value="no">

Что-то наподобие:
document.getElementsByName('inicode').checked="checked";
 
3) Как снять ненужный checkbox?
Код:
<input type="checkbox" name="sm" value="yes" checked="">

Что-то такое:
document.getElementsByName('sm').checked="";
 
Подскажите, пожалуйста, про эти небольшие вопросы.

Всего записей: 207 | Зарегистр. 05-12-2006 | Отправлено: 20:22 31-10-2023
Mavrikii

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

Цитата:
Т.е. по идее должно быть что-то наподобие этого:
document.getElementsByName('preview').value="yes";

нет.
document.querySelector('[name="preview"][value="yes"]').checked = true;
 

Цитата:
Как правильно поставить checkbox, например здесь:

аналогично выше
document.querySelector('[name="inicode"]').checked = true;
 

Цитата:
Как снять ненужный checkbox?

document.querySelector('[name="sm"]').checked = false;

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 21:09 31-10-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