在Firefox中,URL构造为moz-extension://[some GUID here]/而不是chrome-extension://[extension ID here]。 GUID不可预测。
得到了火狐(和Chrome)的URL正确的方法是使用chrome.runtime.getURL:
chrome.tabs.create({
url: chrome.runtime.getURL('src/index.html')
});
,用来获取绝对URL是(只有当代码的上下文中运行工作的另一种方法你扩展页面,而不是在内容脚本):
chrome.tabs.create({
url: location.origin + '/src/index.html')
});
chrome.tabs.create({
url: '/src/index.html'
});
请注意,当您使用相对URL时,请确保指定完整路径(以/开头)。这是因为Firefox和Chrome以不同方式解析相对URL。例如,如果脚本在加载项子目录“/ html /”的页面中运行,那么Firefox将解析相对于子目录的URL,而Chrome将解析相对于扩展根的URL。所以:
// Running at moz-extension://[guid]/html/page.html
// or at chrome-extension://[id]/html/page.html
chrome.tabs.create({url: 'newpage.html'});
// Firefox: Opens moz-extension://[guid]/html/newpage.html
// Chrome: Opens chrome-extension://[id]/newpage.html
chrome.tabs.create({url: '/newpage.html'});
// Firefox: Opens moz-extension://[guid]/newpage.html
// Chrome: Opens chrome-extension://[id]/newpage.html