我正在使用Google扩展程序,我使用以下方法创建了一个弹出窗口:
chrome.browserAction.onClicked.addListener(function() {
chrome.windows.create({'url': chrome.extension.getURL("info.html"), 'type': 'popup'}, function(window) {
});
});
它打开一个本地HTML页面(info.html)包含另一个自己的脚本。我想在后台脚本中访问某些功能。 我已经尝试过了:
var mypage = chrome.extension.getViews({"type":"popup"});
mypage.Somefunction();
第一行返回空,我认为问题是该页面不在chrome.extension范围内。
任何提示都将不胜感激。
更新#1
我也试过这个。然而,
如果使用extension.getBackgroundPage()
方法,当我在background.js
中有一个函数时:
function changedemo(){
document.getElementById("demo").innerHTML = 'Well'
}
当我在脚本中使用:
调用它时window.addEventListener("load",function(){
backgroundPage.changedemo();
});
我得到了Uncaught TypeError: Cannot set property 'innerHTML' of null
,即使它是由听众处理的。
答案 0 :(得分:0)
背景页面和弹出页面的范围不同。 您可以使用Message Passing从后台脚本访问功能
更好的方法:
var background = chrome.extension.getBackgroundPage();
background.Somefunction();