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

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

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

Goodwin7



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

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

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

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



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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

Всего записей: 16419 | Зарегистр. 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. Очень надеюсь на помощь в правке этих фильтров!

Всего записей: 215 | Зарегистр. 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, то не используется.

Всего записей: 16419 | Зарегистр. 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) Срабатывает и на пустые статьи, где не указано вообще никакого размера. Можно их тоже исключить?

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

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

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

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

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

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

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

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

Всего записей: 16419 | Зарегистр. 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. Параметры (условия) ставлю такие же...

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

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



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

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

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



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


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

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

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

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

Всего записей: 215 | Зарегистр. 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="";
 
Подскажите, пожалуйста, про эти небольшие вопросы.

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

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