Как добавить дополнительную кнопку на панель инструментов Chrome DevTools?

Я потратил большую часть дня на изучение этого вопроса, но до сих пор понятия не имею, с чего начать!

По сути, все, что я хочу сделать, это добавить кнопку на панель инструментов DevTools, которая вводит все окно DevTools на произвольную страницу как div или iframe, чтобы я мог управлять этим с помощью обработчиков событий наведения / щелчка, чтобы легче отображать / скрывать.

Работа на 13-дюймовом ноутбуке без возможности купить второй монитор (я ужасно бедный, поэтому необходимость сделать это и запустить свой бизнес в области веб-разработки) делает это абсолютной необходимостью. Это так неприятно, что приходиться постоянно расширять / сворачивать окно или откреплять его и перемещать, чтобы иметь возможность одновременно проверять и изменять произвольные части страницы.

Как упоминалось ранее, я потратил ~ 2 часа на изучение документация по протоколу DevTools, ~ 3 часа, пытаясь собрать свой собственный Chromium из исходников, прежде чем на моем жестком диске закончится место, и бесчисленные часы, исследуя эту тему на других сайтах. Но Chrome - такой массивный и сложный зверь, что я совершенно сбит с толку чрезмерно упрощенным Документация по API расширения DevTools и другими неполными ресурсами, которые я нашел.

Может ли кто-нибудь пролить свет на это для меня? Я дошел до создания расширения DevTools со следующим devtools.js:

chrome.devtools.panels.create('\u25b2\u25bc', '', 'panel.html', function(panel) {
    panel.onShown.addListener(function() {
        chrome.extension.sendMessage({
            tabId: chrome.devtools.inspectedWindow.tabId,
            action: "code",
            content: "var newItem = document.createElement('div');    // Create a new div node\n" +
                "newItem.innerHTML = '<p>Boo!</p>';" +
                "var body = document.getElementsByTagName('body')[0]; // Get the body element to insert the header into\n" +
                "body.insertBefore(newItem, body.childNodes[0]);      // Insert header before the first child of the body"
        });
    });
});

Это добавляет панель, которая при переключении на правильную вставку div, но даже этот крошечный прогресс занял ~ 4 часа !! Я просто худший веб-разработчик в мире, или этот API самый сложный и плохо документированный из когда-либо созданных ?! Мы будем очень признательны за помощь в том, чтобы кнопка действительно делала то, что я хочу!

Я также хотел бы знать, лучший ли для меня маршрут расширения или мне следует использовать протокол DevTools? Это кажется гораздо более мощным, но все разговоры об «удаленной отладке» и «внешних клиентах» на вышеупомянутой странице документации только сбивают меня с толку (не могу ли я просто имитировать DevTools локально в моем собственном браузере, раз уж я уже работает Apache локально?).

MTIA и извинения за многословный вопрос!

Я не эксперт по расширению инструментов разработки, поэтому вот лишь небольшая подсказка: используйте инструменты для разработки на устройствах разработки, который вызывается нажатием Ctrl-Shift-i в незакрепленном окне инструментов разработчика. Затем вы можете проверить исходный пользовательский интерфейс devtools, который должен помочь вам найти соответствующее место в исходном коде, объясняющее, как все работает.

wOxxOm 22.04.2018 08:51

@wOxxOm OMG спасибо !! Я еще не пробовал это, но похоже, что это, по крайней мере, поможет мне начать отлично! : D

Kenny83 22.04.2018 10:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
2
463
0

Другие вопросы по теме