我正在开发一个谷歌扩展,我使用它创建了一个弹出窗口:
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
即使它是由监听器处理的。
最佳答案
后台页面和弹出页面的范围不同。 您可以使用Message Passing从后台脚本访问函数
更好的方法:
var background = chrome.extension.getBackgroundPage();
background.Somefunction();
关于javascript - 从外部弹出窗口访问功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37830901/