Недавно я обновил Chrome до версии 55.0.2883.75. Я использую собственный разработанный Chrome-плагин для анализа моих HTML-файлов, в которых я использую chrome.tabs.executescript для получения данных с фоновой HTML-страницы. Итак, когда я выполняю chrome.extension.onRequest, я сохраняю анализируемые данные фоновой страницы в глобальную переменную и получаю доступ к ней в функции обратного вызова chrome.tabs.executescript и обрабатываю ее.Не удалось получить доступ к глобальным переменным в chrome.tabs.executescript в Chrome версии 55
Это работало нормально, пока я не обновляюсь до версии 55.0.2883.75. Как получить доступ к глобальным переменным в новой версии?
Мой код ниже:
Шаг 1:
chrome.extension.onRequest.addListener(
function (request, sender, sendResponse) {
parser = new DOMParser();
htmlDoc = parser.parseFromString(request.content, "text/html");
//outputJson is a global variable which is Populated here
outputJson = parseMyPage(outputJson, htmlDoc);
});
Шаг 2:
chrome.tabs.getSelected(null, function (tab) {
// Now inject a script onto the page
chrome.tabs.executeScript(tab.id,{
code: "chrome.extension.sendRequest({content: document.body.innerHTML}, function(response) { console.log('success'); });"
}, function() {
//my code to access global variables
if (outputJson && null != outputJson) {
// other stuff
}
});
});
Что вы укажете в [различных соответствующих консолях для расширения] (http://stackoverflow.com/a/38920982/3773011) при загрузке и выполнении расширения? – Makyen
Наличие * manifest.json * поможет здесь, поэтому нам не нужно создавать его для тестирования. – Makyen
Пожалуйста, отредактируйте вопрос по теме: включите ** полный ** [mcve], который * дублирует проблему *. Включая * манифест.json *, некоторые из сценариев background/content/popup/HTML. Вопросы, требующие помощи по отладке («** почему этот код не работает? **)) должны включать: ► желаемое поведение, ► конкретную проблему или ошибку * и * самый короткий код, необходимый для его воспроизведения ** в вопросе сам**. Вопросы без четкого описания проблемы не полезны другим читателям. Смотрите: «** Как создать [mcve] **», [о каких темах я могу спросить здесь?] (Http://stackoverflow.com/help/on-topic) и [ask]. – Makyen