С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
4 / 4 / 1
Регистрация: 23.01.2015
Сообщений: 330
1

Выделение элемента курсором

23.10.2018, 22:29. Показов 763. Ответов 2

Author24 — интернет-сервис помощи студентам
Т.к. самому делать то, что уже сделано за меня мне лень, а сделано это в Adblock, при нажатии на кнопку заблокировать элемент, я решил попробовать просто... ну не совсем просто скопировать код.

В итоге меня остановила вот эта ошибка:
Код
Uncaught ReferenceError: browser is not defined
    at getFiltersForElement (...
в

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function getFiltersForElement(element, callback)
{
  let src = element.getAttribute("src");
  browser.runtime.sendMessage({
    type: "composer.getFilters",
    tagName: element.localName,
    id: element.id,
    src: src && src.length <= 1000 ? src : null,
    style: element.getAttribute("style"),
    classes: Array.prototype.slice.call(element.classList),
    urls: getURLsFromElement(element),
    mediatype: typeMap.get(element.localName),
    baseURL: document.location.href
  },
  response =>
  {
    callback(response.filters, response.selectors);
  });
}
Наверное, я конечно бы мог просто стереть строчки кода с этой ф-цией и сделать как-то криво, но что бы хотя бы работало, но скорее всего ничего работать не будет и в итоге всё придётся делать по-своему, и всё-таки, хотелось бы узнать, почему возникает эта ошибка.
*было бы неплохо, объясни мне кто-нибудь то, что делает эта ф-ция.


*Кстати, если тут у кого-нибудь завалялся код, который достаточно легко перенести в другой проект, и который делает то, что мне надо, буду не против, если мне кто-нибудь его скинет)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.10.2018, 22:29
Ответы с готовыми решениями:

Выделение текста под курсором в QWebView
У меня есть QWebView объект, я устанавливаю туда html-ну. при клике правой кнопкой мыши я показываю...

Как запретить выделение текста курсором мыши
Как запретить выделение текста курсором мыши? Нужно, чтобы при наведении курсора на меню курсор...

Выделение ссылки при наведении курсором цветной рамкой
Здравствуйте уважаемые специалисты1 Наверняка Вы знаете как сделать что бы было Выделение ссылки...

[SFML] Выделение меню синим цветом при наведении курсором
#include &lt;SFML/Graphics.hpp&gt; using namespace sf; int main() { RenderWindow...

2
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,665
24.10.2018, 16:39 2
Zagadohnik37, у Вас нету переменной browser. поэтому ошибку выкидывает на 4-й строке.
для чего кстати это js класс нужен?
0
4 / 4 / 1
Регистрация: 23.01.2015
Сообщений: 330
24.10.2018, 20:55  [ТС] 3
atanov, Ну я как-бы понимаю, что у меня нет переменной browser, но насколько я понимаю, она изначально уже должна быть, т.к. это что-то вроде браузерного апи...?

Javascript
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
function startPickingElement()
{
  currentlyPickingElement = true;
 
  // Add (currently invisible) overlays for blockable elements that don't emit
  // mouse events, so that they can still be selected.
  /*Array.prototype.forEach.call(
    document.querySelectorAll("object,embed,iframe,frame"),
    element =>
    {
      getFiltersForElement(element, filters =>
      {
        if (filters.length > 0)
          addElementOverlay(element);
      });
    }
  );*/
 
  document.addEventListener("mousedown", stopEventPropagation, true);
  document.addEventListener("mouseup", stopEventPropagation, true);
  document.addEventListener("mouseenter", stopEventPropagation, true);
  document.addEventListener("mouseleave", stopEventPropagation, true);
  document.addEventListener("mouseover", mouseOver, true);
  document.addEventListener("mouseout", mouseOut, true);
  document.addEventListener("click", elementPicked, true);
  document.addEventListener("contextmenu", elementPicked, true);
  document.addEventListener("keydown", keyDown, true);
 
 // ext.onExtensionUnloaded.addListener(deactivateBlockElement);
}
Ну в общем основу я вроде как понял, и только что нашёл крайне удобное свойство,
CSS
1
pointer-events: none;
, так что не буду заморачиваться с тем, как бы скопировать адблоковский код, и просто напишу свой, хоть и куда менее продуманный
0
24.10.2018, 20:55
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.10.2018, 20:55
Помогаю со студенческими работами здесь

Выделение элемента
Как правильно сделать выделение на iOS допустим UIImageView которая лежит во UIView?, выделение...

выделение элемента в ListView
Подскажите, что я делаю не так? У меня в кастомном диалоге создается и заполняется список, при его...

Выделение элемента списка
Доброго времени суток! Господа эксперты подскажите, пож-ста, почему элемент не выделяется по клику...

Выделение первого элемента
html: &lt;ul id=&quot;list&quot;&gt; &lt;li&gt;1&lt;/li&gt; &lt;li&gt;2&lt;/li&gt; &lt;ul&gt; &lt;ul id=&quot;list&quot;&gt; &lt;li&gt;3&lt;/li&gt; ...

Выделение вокруг элемента
Как видно на скриншоте, меня беспокоят это выделение на элементе RadioButton1! Как его убрать? С...

Qtreeview снять выделение с элемента
Здравствуйте использую связку Qfilesystemmodel+qtreeview. Соответственно файловая система...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru