Ответы пользователя по тегу JavaScript
  • Как изменить текст цвета в зависимости от фона?

    Psychosynthesis
    @Psychosynthesis
    Fullstack developer and radio engineer
    Погуглите в сторону css-свойства:
    mix-blend-mode

    Кажется это именно то що вам надо, но на старых браузерах может не работать.
    Ответ написан
    Комментировать
  • Как удалить option из select с помощью js по значению value?

    Psychosynthesis
    @Psychosynthesis
    Fullstack developer and radio engineer
    Возможно кому-то ещё пригодится ещё один простой вариант очистки селектора:

    document.getElementById(SELECT_ID).innerHTML = "";
    Ответ написан
    Комментировать
  • Как импортировать файлы в manifest для расширения firefox?

    Psychosynthesis
    @Psychosynthesis
    Fullstack developer and radio engineer
    Я столкнулся по сути с той же проблемой, хотя я пишу без всяких сборщиков, так что код попроще для понимания, так что возможно кому-то ещё может пригодится мой подход.

    Короче, в моём случае, я тоже хотел вынести общие функции в отдельный файл и импортить его где необходимо.
    У меня изначально всего один background-скрипт и ещё пара для меню. Вот мой изначальный манифест (очевидно не целиком, а лишь значимые части):
    {
    	...
    	"background": {
    		"scripts": ["queryParamsRemover.js"]
    	},
    	"browser_action": {
    		"browser_style": true,
    		"default_icon": "icons/panelicon.png",
    		"default_title": "Eraser",
    		"default_popup": "panel/panelMenu.html"
    	},
    	...
    }


    Соответственно, код с логикой panelMenu у меня подключался просто через тег в теле panel/panelMenu.html:
    <script src="panelMenu.js"></script>

    Естессна, никакие импорты внутри panelMenu.js не работали, вылетала ошибка Uncaught SyntaxError: import declarations may only appear at top level of a module. Очевидно, при попытке импортить что-либо в queryParamsRemover.js ошибка была аналогичная.

    Как выяснилось, решения у данной проблемы два:
    1. В файл panelMenu.html скрипт встраивается с атрибутом type="module":
    <script src="panelMenu.js" type="module"></script>
    После этого внутри panelMenu.js уже работают привычные импорты (кому-то хватит и этого, полагаю).
    Далее, чтобы импорты заработали и в основном background-скрипте (у меня это queryParamsRemover), придётся немного изменить подход. Решение (как по мне) выглядит несколько коряво, но именно так предлагает делать официальная документация: https://developer.mozilla.org/ru/docs/Mozilla/Add-...

    Итак, нужно изменить манифест:
    "background": {
    	"page": "background.html"
    }

    А уже в этом самом background.html вставлять основной скрипт всё с тем же атрибутом module:
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <script type="module" src="queryParamsRemover.js"></script>
      </head>
    </html>

    Собсна, вуаля. Теперь всё работает везде, хотя (как по мне), лишняя веб-страница выглядит каким-то костылём. Почему нельзя было какой-нить атрибут в манифест добавить, что скрипт как модуль выполнялся - непонятно сршна.
    Ответ написан
    Комментировать
  • Если ли ссылки на красивые фотогалереи для лендинга?

    Psychosynthesis
    @Psychosynthesis
    Fullstack developer and radio engineer
    Если речь про слайдер, то вот: fotorama.io

    Если конкретно про галерею, то мне вот эта, например, нравится: tympanus.net/codrops/2012/11/06/gamma-gallery-a-re...
    Ответ написан
    Комментировать
  • Как реализовать идею?

    Psychosynthesis
    @Psychosynthesis
    Fullstack developer and radio engineer
    Да тут даже jQuery не нужен, всё на нативном JS можно в несколько строк уместить.
    Ответ написан
    Комментировать