Firefox浏览器DevTools中window.open返回null问题求助
问题解答
Firefox不是不支持在控制台用window.open,而是默认的弹窗拦截策略限制了非用户主动交互触发的弹窗——控制台里直接执行的脚本属于这类无用户交互触发的操作,所以会返回null,弹窗同时被拦截。
Chrome对控制台触发的弹窗拦截规则更宽松,因此能正常打开窗口。
解决办法有这几个:
- 临时放行当前站点弹窗:地址栏左侧会出现弹窗拦截图标(带斜杠的弹窗标志),点击它选择“允许stackoverflow.com的弹窗和重定向”,之后再执行控制台代码就能正常打开窗口。
- 修改全局弹窗设置:进入Firefox设置页面,找到「隐私与安全」板块,在「弹窗和重定向」选项里,把stackoverflow.com添加到“允许”列表,或者调整整体拦截规则。
- 模拟用户交互触发:在控制台写一段代码创建按钮,通过点击按钮触发
window.open(用户主动点击属于合法交互),示例代码:
执行后页面会出现按钮,点击它就能正常打开新窗口。const btn = document.createElement('button'); btn.textContent = '打开StackOverflow'; btn.onclick = () => window.open('https://stackoverflow.com'); document.body.appendChild(btn);
内容的提问来源于stack exchange,提问作者Jamars
相关产品推荐
相关产品推荐

