Пример D3 мы использовали это: https://bl.ocks.org/mbostock/raw/1341021/Как получить данные узла D3 в скрипте содержимого Chrome Extension
При копировании & вставьте следующий код в консоль и запустить, все ограниченные данные будут показанном на консоли.
var svgs = document.getElementsByTagName("svg");
for (var i = 0; i < svgs.length; i++) {
var babbies = svgs[i].getElementsByTagName("*");
for (var j = 0; j < babbies.length; j++) {
console.log(babbies[j].__data__);
}
}
К сожалению, если мы будем использовать тот же самый код в скрипта содержимого из Extension Chrome, то данные всех узлов (babbies[j].__data__
) показывают undefined
. Мы запустили отладчик, а узлы babbies
в скрипте контента выглядели великолепно.
Итак, мы провели некоторое исследование сценариев контента и поняли, что Скрипты содержания выполнены в an "isolated world" environment. По этой причине сценарии содержания выглядели , чтобы не было возможности читать ограниченные данные узла D3.
Мы также попытались ввести сценарии на страницу через this method. Тем не менее, инъецированные скрипты ведут себя так, как они были включены самой страницей, и являются , которые не связаны с расширением в любом случае.
Нам было интересно, есть ли способ доступа к ограниченным данным узла D3 в сценарии содержимого или код расширения?
Работает в обратном направлении тоже! Изменил код и отправил сообщение из сценария контента для инъецированного скрипта, отлично работал! Благодаря! – cdeng