我们的Chrome扩展程序浏览器操作会打开一个新标签:
chrome.tabs.create({
url: chrome.extension.getURL('/html/main.html?route=/home')
})
main.html是一个单页应用条目,它使用HTML5历史记录API(history.pushState
)将/html/main.html?route=/home
更改为/home
。这样可以,并且应用程序中的导航可以正常工作。
唯一的问题是,如果用户刷新页面/home
将为404。
找不到此网页 ERR_FILE_NOT_FOUND
有没有办法制作默认的html或自定义404,可以将/x/y/z
重定向到/html/main.html?route=/x/y/z
?
答案 0 :(得分:2)
您应该能够使用webRequest
API(未经测试!):
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
if(/* condition on details.url */) {
return {redirectUrl: fix(details.url)};
}
}, {
urls: ["chrome-extension://" + chrome.runtime.id + "/*"]
}, [
"blocking"
]
);
请注意,您需要webRequest
和webRequestBlocking
权限。