我的Google Chrome扩展中有一个background-page,这个页面自然是不可见的。有没有办法让这个隐藏的页面可见,比如说在点击浏览器操作图标时弹出?然后再次点击隐藏它。
background-page
smdnsysy1#
可以使用chrome.tabs.create方法显示背景页,该方法需要tabs permission。例如,如果背景页名为background.html,则可以使用以下代码:
chrome.tabs.create
tabs
background.html
chrome.tabs.create({url: chrome.extension.getURL('background.html')});
另请参阅:
chrome.extension.getURL
cbeh67ev2#
您可以在browserAction弹出窗口中打开backround_page。但是它将是background_page的一个新示例。一个是打开时的弹出窗口,另一个是在后台长期隐藏的。
browserAction
backround_page
background_page
eivgtgni3#
在扩展的弹出页面中,添加一个JS,使用chrome.runtime.getBackgroundPage(回调),给予背景页面的<html>元素一个id,使用window.getElementById("myBackgroundPageHTMLElementId")例如,回调可能如下所示:
<html>
id
window.getElementById("myBackgroundPageHTMLElementId")
document.getElementById("myPopupHTMLElementId").outerHTML = backgroundWindow.getElementById("myBackgroundPageHTMLElementId").outerHTML
在这个JS脚本完成后,弹出页面的HTML元素将被背景页面完全替换(直到你重新加载它)!这意味着所有的属性,甚至HTML元素上的属性都被设置为背景页面的版本。希望这对你有帮助!
3条答案
按热度按时间smdnsysy1#
可以使用
chrome.tabs.create
方法显示背景页,该方法需要tabs
permission。例如,如果背景页名为background.html
,则可以使用以下代码:另请参阅:
chrome.tabs.create
chrome.extension.getURL
cbeh67ev2#
您可以在
browserAction
弹出窗口中打开backround_page
。但是它将是background_page
的一个新示例。一个是打开时的弹出窗口,另一个是在后台长期隐藏的。eivgtgni3#
在扩展的弹出页面中,添加一个JS,使用chrome.runtime.getBackgroundPage(回调),给予背景页面的
<html>
元素一个id
,使用window.getElementById("myBackgroundPageHTMLElementId")
例如,回调可能如下所示:
在这个JS脚本完成后,弹出页面的HTML元素将被背景页面完全替换(直到你重新加载它)!这意味着所有的属性,甚至HTML元素上的属性都被设置为背景页面的版本。
希望这对你有帮助!