Попытка написать пользовательский скрипт приложения Fluid, чтобы отключить автоматическое всплывающее окно на боковой панели - PullRequest
1 голос
/ 06 мая 2020

Edit - рабочее решение

Попытка отключить событие javascript была не- go, вместо этого я добавил в DOM дополнительный элемент, который переключал видимость боковой панели с помощью css который работал. Это не самое красивое решение, поскольку я только что учусь, но оно решает проблему.

Он не работает как пользовательский скрипт Fluid, но работает как скрипт Greasemonkey / Tampermonkey в браузере. Полный код находится на Github - хотелось бы, чтобы кто-нибудь с дополнительными знаниями улучшил его.

Исходное сообщение

Я новичок ie в JS но Я пытаюсь учиться на практике.

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

Я где-то читал, что могу используйте приложение Fluid для sh пользовательских скриптов, и что можно было бы отключить эту функцию с помощью настраиваемого стиля.

Но я не могу понять, как получить JS или CSS для отключения событий наведения указателя мыши.

Думаю, я нашел, где прослушивается событие, но я не уверен в следующих шагах, как удалить эту функцию прослушивателя или остановить вызов функции.

Здесь, я думаю, срабатывает событие, может кто-нибудь посоветовать?

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 01 июня 2020

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

Еще не мог понять, как заставить его работать в приложении Fluid, но я справился с пользовательским скриптом greasemonkey.

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

Я добавляю кнопку в DOM и даю этой кнопке триггер, который переключает видимость боковой панели понятий. Нажмите кнопку, и боковая панель станет невидимой, и при наведении курсора на левую сторону ничего не появится.

Это не самое красивое решение, потому что оно не удаляет существующую кнопку notion для боковой панели, и если вы не минимизируете боковую панель с помощью собственной кнопки notion, форматирование может быть немного неудобным, но как хак это полностью работает.

Я новичок в JS и кодировании в целом, так что это, вероятно, очень неэффективно. Но если это кому-то поможет, вот код на Github - я хотел бы, чтобы кто-нибудь помог мне сделать это лучше.

0 голосов
/ 06 мая 2020

Вы можете добавить слушателя захвата mousemove в контейнер элемента с помощью слушателя. При перемещении мыши, если цель (элемент, которому отправляется событие) является потомком элемента со слушателем страницы, который вы не хотите запускать, вызовите stopPropagation для события.

Например, в В приведенном ниже коде скрипт страницы пытается раскрасить элемент, когда он или один из его потомков зависает, но вторая часть (которая может go в пользовательский скрипт) предотвратит это:

// Page script:
nested.addEventListener('mousemove', (e) => {
  nested.style.color = 'red';
});

// Userscript:
outer.addEventListener('mousemove', (e) => {
  if (e.target.closest('#nested')) {
    e.stopPropagation();
  }
}, true);
<div id="outer">
  outer
  <div id="nested">
    nested
    <div id="inner">
      inner
    </div>
  </div>
</div>
...