这是我的manifest.json
的一部分:
...
"chrome_url_overrides" : {
"newtab": "index.html"
},
"chrome_settings_overrides" : {
"homepage": "index.html"
}
...
index.html
可以在每个新标签页上正常加载。
但是,无论是新窗口还是启动时,我得到的都是空白页面。
我手动尝试仅将首选项设置为index.html
的URL作为扩展本身,例如:
moz-extension://1232131-32132131-321312-321321-321321/index.html
该行为有所改善,但并不完美。当我这样做时,新的Windows可以很好地加载index.html
,但是在重新启动时(从关闭的应用程序开始),我看到的还是再次是空白页?
任何想法出了什么问题?仅在Firefox中会发生这种情况,在Tor浏览器和Google Chrome上则可以。
答案 0 :(得分:1)
事实证明,发生这种情况是由于扩展在启动时未及时加载新窗口而加载的。
我第一次解决此问题的方式是在我的background.js
文件中:
function loadStart(){
browser.tabs.update(
{
url: "index.html"
}
)
}
browser.runtime.onStartup.addListener(loadStart)
但是,如果始终使用私人浏览的设置处于活动状态,则上面的代码将不会执行任何操作,因为如果加载了隐身/私人浏览配置文件,则runtime.onStartup
不会触发。
对此进行反驳:
function pushStart(data) {
if (data == null) {
loadStart()
}
else {
console.log("tab is well defined")
}
}
var currentTab = browser.tabs.getCurrent()
currentTab.then((data)=>(pushStart(data)))
关于重新启动的新窗口正在尝试加载扩展中捆绑的页面,但由于扩展本身尚未加载且不可用而跳出。
因此,以上代码可解决这种情况。