Скрипт Tampermonkey не видит элементы теневого корня (открытые), загруженные ajaxJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Гость
 Скрипт Tampermonkey не видит элементы теневого корня (открытые), загруженные ajax

Сообщение Гость »


Я пытаюсь написать скрипт Tampermonkey в Chrome для веб-сайта, которым постоянно пользуюсь на работе. Я хочу, чтобы скрипт удалял отключенный атрибут на кнопках определенного класса или заголовка. Мне это кажется довольно простой задачей, но я уперся в каменную стену, поскольку сайт довольно активно использует Ajax.

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

Только верхний и нижний колонтитулы

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

С загруженным основным содержимым приложения

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

РЕДАКТИРОВАТЬ: Сегодня я немного поигрался и понял, что в нескольких местах HTML есть #shadow-root (open), поэтому я начал смотреть, что это такое является. Я не знал, что теневое дерево DOM визуализировалось отдельно от дерева DOM основного документа, пока сегодня не провел небольшое исследование. Это имеет смысл, почему это не запускает мою функцию. Я провел дополнительное тестирование и смог запустить свою функцию на ajax-контенте в главном окне приложения до первого появления #shadow-root (open).

На данный момент это мой сценарий Tampermonkey, для которого требуются JQuery и waitForKeyElements(), которые я нашел в других вопросах о переполнении стека, касающихся содержимого ajax:

// ==Пользовательский скрипт== // @name Включить кнопки // @match my.website.url.org // @require https://code.jquery.com/jquery-3.6.4.min.js // @require https://gist.github.com/raw/2625891/wai ... lements.js // @grant GM_addStyle // @версия 0.1 // ==/Пользовательский скрипт== (функция() { waitForKeyElements('button.btn.ripple.primary',modifyButtons, false); функция ModifyButtons (jNode) { console.log ("Обнаружена кнопка ~~~~~~~~ ~~~~~~~~"); var button = document.querySelectorAll('button.btn.ripple.primary'); for (var i=0; i
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»