1

Я пытаюсь использовать https://github.com/povdocs/webvr-starter-kit, чтобы создать хром-расширение PageAction.Функция, объявленная на вложенном файле, не распознается из background.js в chrome extension

На моем manifest.json файл, я использовал content_scripts загрузить jquery.js и другой inject.js.

На мой inject.js я следующие коды:

function initVR() { 
    VR.floor(); 
    VR.box({ color: '#FFFFFF' }).moveTo(0, 1.4, 0).setScale(5,4,0); 
    var text = VR.text({ 
     wrap: 4.1, 
     font: '24pt Roboto', 
     textAlign: 'left', 
     fillStyle : '#000000', 
     text : 'Hello world test' 
    }) 
    .moveTo(.1, 1.4, 0); 
} 

на моем background.js файл, Я

chrome.pageAction.onClicked.addListener(function(tab) { 
    chrome.tabs.executeScript(tab.ib, { 
    file: "src/inject/vr.dev.js" 
    }, function(){ 
    initVR(); //Calling the function I declared on inject.js 
}); 

Идея заключается в том, когда человек нажимает на кнопку pageAction , он вводит vr.dev.js и инициализирует настройку.

Когда я реализую это, я получаю сообщение об ошибке: initVR() не определен. Что я делаю неправильно?

enter image description here

ответ

2

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

https://developer.chrome.com/extensions/messaging

3

Ваш фон сценарий не имеет доступа к вашему сценарию контента. Вместо этого вы должны отправить сообщение от background.js на свою страницу и прослушать там функцию initVR()