繁体   English   中英

Chrome扩展程序默认html或404(用于单页应用程序路由)

[英]Chrome extension default html or 404 (for single-page app routing)

我们的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 will 404。

找不到此网页ERR_FILE_NOT_FOUND

有没有一种方法可以使默认的html或自定义404将/x/y/z重定向到/html/main.html?route=/x/y/z

您应该可以使用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"
  ]
);

请注意,您将需要webRequestwebRequestBlocking权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM