Итак, я пытаюсь разработать расширение для Chrome, которое будет экспортировать список xpaths выбранных элементов со страницы. Однако я не могу вычислить xpath текущего выбранного элемента на панели devtools.
Я попытался использовать getPathTo из этот ответ, но функция не может получить доступ к ссылке на элемент $0.
С помощью этого кода я могу распечатать тег нового выбранного элемента:
chrome.devtools.panels.elements.onSelectionChanged.addListener(function () {
var expression = "(function(){console.log($0);})()"
chrome.devtools.inspectedWindow.eval(expression)
});
Но если я попытаюсь:
chrome.devtools.panels.elements.onSelectionChanged.addListener(function () {
var expression = "(function(){console.log(getPathTo($0));})()"
chrome.devtools.inspectedWindow.eval(expression)
});
Он жалуется на неопределенную ссылку на $0.
В коде также есть эта функция для установки HTML-кода боковой панели:
chrome.devtools.panels.elements.createSidebarPane(
"Chrome Extension",
function (sidebar) {
sidebar.setPage("sidebar/sidebar.html");
}
);
И sidebar/sidebar.html — это простая HTML-страница со списком элементов внутри, куда я хочу добавить путь ко всем выбранным элементам и кнопку для копирования списка в буфер обмена. Как я могу использовать ссылку на выбранный элемент внутри функции? Кроме того, как я могу передать результаты на HTML-страницу?
getPathTo
в контексте страницы, поскольку eval работает в контексте страницы, если только вы указываете иначе, см. документацию. - person wOxxOm   schedule 08.04.2020