我正在尝试使用https://github.com/povdocs/webvr-starter-kit来创建Chrome PageAction扩展程序。
在我的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()
未定义。我做错了什么?
答案 0 :(得分:3)
您的后台脚本无权访问您的内容脚本。你应该从background.js向你的页面发送一条消息,并在那里有一个监听器来调用函数initVR()
答案 1 :(得分:2)
您必须使用消息传递与内容脚本进行通信,因为浏览器的扩展名是单个后台脚本,它必须标识选项卡