测试 #161875来源: insiders.vscode.dev目标:GH Codespace由于弹出窗口阻止,CS未打开:
zbwhf8kr1#
@bpasero 创建的代码空间应该在新标签页中打开,请问使用的是哪个浏览器?在打开vscode.dev之前,您是否配置了弹出窗口阻止设置?这种情况是否对从vscode.dev打开的所有外部链接都发生?
wz3gfoph2#
这段文本内容是一段JavaScript代码,主要描述了在VS Code中打开一个新窗口时,如果浏览器阻止了这个操作,会弹出一个警告对话框让用户选择是否继续尝试打开。这段代码涉及到了浏览器的兼容性问题,因为不同的浏览器厂商对于何时允许打开一个新窗口有不同的阈值。例如,Safari浏览器在这方面表现得较差,甚至需要开发者实现一个回退方案。
翻译后的中文文本如下:
这段代码发生在用户与窗口交互后,打开窗口的过程中。下一次执行这个操作时,窗口会自动打开。我相信浏览器厂商对于何时允许打开一个新窗口有不同的阈值,以应对可能的弹窗拦截器。我知道Safari在这方面表现得最差,甚至需要我们实现一个回退方案:
// 在vscode/src/vs/workbench/browser/window.ts文件的第160行到第194行之间 if (matchesScheme(href, Schemas.http) || matchesScheme(href, Schemas.https)) { if (isSafari) { const opened = windowOpenWithSuccess(href, !isAllowedOpener); if (!opened) { const showResult = await this.dialogService.show( Severity.Warning, localize('unableToOpenExternal', "The browser interrupted the opening of a new tab or window. Press 'Open' to open it anyway."), [ localize('open', "Open"), localize('learnMore', "Learn More"), localize('cancel', "Cancel") ], { cancelId: 2, detail: href } ); if (showResult.choice === 0) { isAllowedOpener ? windowOpenPopup(href) : windowOpenNoOpener(href); } else if (showResult.choice === 1) { await this.openerService.open(URI.parse('https://aka.ms/allow-vscode-popup')); } } } else { isAllowedOpener ? windowOpenPopup(href) : windowOpenNoOpener(href); } }
5ssjco0h3#
@bpasero我们是否应该在非Safari浏览器上也始终使用这种回退逻辑?
ndh0cuux4#
是的,为什么不呢?我们必须验证我们的逻辑在其他浏览器中是否有效。👍
4条答案
按热度按时间zbwhf8kr1#
@bpasero 创建的代码空间应该在新标签页中打开,请问使用的是哪个浏览器?在打开vscode.dev之前,您是否配置了弹出窗口阻止设置?这种情况是否对从vscode.dev打开的所有外部链接都发生?
wz3gfoph2#
这段文本内容是一段JavaScript代码,主要描述了在VS Code中打开一个新窗口时,如果浏览器阻止了这个操作,会弹出一个警告对话框让用户选择是否继续尝试打开。这段代码涉及到了浏览器的兼容性问题,因为不同的浏览器厂商对于何时允许打开一个新窗口有不同的阈值。例如,Safari浏览器在这方面表现得较差,甚至需要开发者实现一个回退方案。
翻译后的中文文本如下:
这段代码发生在用户与窗口交互后,打开窗口的过程中。下一次执行这个操作时,窗口会自动打开。我相信浏览器厂商对于何时允许打开一个新窗口有不同的阈值,以应对可能的弹窗拦截器。我知道Safari在这方面表现得最差,甚至需要我们实现一个回退方案:
5ssjco0h3#
@bpasero我们是否应该在非Safari浏览器上也始终使用这种回退逻辑?
ndh0cuux4#
是的,为什么不呢?我们必须验证我们的逻辑在其他浏览器中是否有效。👍