2011-12-29 2 views
0

У моего расширения есть background.html, который получает некоторую информацию, а затем перенаправляет его на другую веб-страницу, чей css изменен моим файлом javascript (app.js). Итак, теперь я пытаюсь передать массив из background.html в этот файл javascript, как в той же самой папке расширения. Я попробовал example, но у меня не было успеха. Как я могу это сделать?Передача массива внутри расширений Chrome

ответ

1

Когда я работал над расширением, которое нужно было пройти много информации назад и вперед между фоном и файл JS я нашел это было проще создать вар, как этот

const Background = chrome.extension.getBackgroundPage() 

и тогда, когда я необходимо было получить доступ к чему-либо на странице фона, на которой я мог бы просто использовать. оператор. как этот

Background.foo() //access a function on background page. 
Background.my_var // access a variable on the background page. 
Background.my_array[0] // access the 0 index in your background array 

Поскольку фон странице не нужно знать, что было в файле JS большой части времени это было просто проще в использовании:

popups[0].foo() 

Если необходимо получить доступ что-то в popup или js-файлов.

+0

что "chrome.extension.getBackgroundPage()" это не работает для меня. У меня есть в манифесте «background_page»: «background.html», поэтому я не понимаю, почему он не проходит в этой функции. Но если я использую эту функцию в background.html, она проходит, но не в моем файле javascript. – Calado

+0

включили ли вы свой javascript-файл на свою страницу popup.html? – Ryan

+0

Если я это сделаю, Javascript не будет работать, потому что он как будто уже выполнен. Я помещаю в файл JS const background = chrome.extension.getBackgroundPage(); alert (background.token); и когда я запускаю мое расширение, e дает предупреждение «undefined», и страница еще не дошла до страницы перенаправления. – Calado

0

это в вашем фоне страницы

chrome.tabs.create({url: "http://yourdomain.com"}, function (tab){ 
    chrome.tabs.executeScript(tab.id, file: "app.js", function(){ 
     //This is a Callback 
    }); 
}); 
Смежные вопросы