Получить Backgrundcolor of Element на позицию с JavaScript - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь определить цвет определенного c элемента в позиции (иногда внутри IFrame)

var el = document.elementFromPoint(1000, 10);
if (el instanceof HTMLIFrameElement)
    el = el.contentWindow.document.elementFromPoint(1000, 10);

el возвращает:

<div class="container-fluid"</div>

Этот элемент сам по себе не имеет стиля, поэтому el.style.backgroundColor дает мне ""

Элемент, который содержит информацию о стилизации, является родительским div, но поскольку веб-сайт имеет динамический c, это также не всегда так.

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

Что-то вроде document.getColorFromPoint(1000, 10), которое возвращает шестнадцатеричный код или значение rgba?

Спасибо за любые предложения

1 Ответ

0 голосов
/ 25 марта 2020

window.getComputedStyles - это то, что вы хотите использовать, поскольку свойство el.style возвращает только встроенные стили, примененные к элементу.

Я бы подошел к этому так:

  • Найти текущий элемент с помощью elementFromPoint метода
  • Получить фон с помощью window.getComputedStyle(element)["backgroundColor"]
  • Если он возвращает пустую строку для текущего элемента, вызовите тот же метод для его родителя window.getComputedStyle(element)["backgroundColor"]
    • Запускайте это, пока не получите цвет фона!
...