Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
T treasure
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 12
    • Issues 12
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • External wiki
    • External wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • FE
  • treasure
  • Issues
  • #165

Closed
Open
Created Jun 05, 2023 by 云霄 顾@guyunxiao

浏览器异步打开新窗口被拦截问题

问题:需要请求后拉开新窗口的需求时,如果请求超过一定时间后,弹窗窗口可能会被浏览器拦截
解决方案:

  1. 将window.open赋值给一个变量,如果被浏览器拦截了该变量为空,被拦截时可以弹出弹窗让用户手动点击跳转
const newWin = window.open('www.baidu.com');
if (!newWin) { 
  setShowShareModal(true); //打开弹窗让用户手动跳转
}
  1. 在请求前打开一个loading窗口,请求成功后将该窗口地址赋值成想要跳转的地址
// 请求前
const newWin = window.open('/loading');
// 请求后
newWin.location = 'www.baidu.com'
Edited Jun 06, 2023 by 云霄 顾
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking