如何使JavaScript alert()对话框中的多行文本可选?

How to make multi-line text in JavaScript alert() dialog selectable?

提问人:Brennen 提问时间:12/2/2022 更新时间:12/2/2022 访问量:214

问:

我正在使用 alert() 对话框在我的应用程序中向用户显示错误消息。

当对 2+ 行文本使用专门放置的换行符时,其中一个警报对话框会更清晰。

不幸的是,当我在使用“\n”或“\r”时显示 alert() 对话框时,警报的文本不再可用于复制/粘贴操作。

这种行为似乎只存在于Google Chrome或Microsoft Edge中(我还没有在Opera上尝试过,但我愿意打赌任何基于Chromium的浏览器都会显示相同的行为)。

Firefox 中不存在此行为。

用于测试的 Chrome 版本:版本 108.0.5359.72(官方版本)(64 位) 用于测试的 Edge 版本:版本 107.0.1418.62(官方版本)(64 位) 用于测试的 Firefox 版本:107.0.1(64 位)

下面是演示该问题的简单代码片段:

function delay(milliseconds){
    return new Promise(resolve => {
        setTimeout(resolve, milliseconds);
    });
}

async function init(){
        alert("this text is selectable");
        await delay(500)
        alert("this text is not selectable \nbecause of the newline");
        await delay(500)
        alert("this text is not selectable \rbecause of the return");
}

init();

链接到 JSFiddle

我也尝试过使用
标签,但这似乎没有在 alert() 对话框中提供任何换行行为。

JavaScript Google-Chrome 警报 Microsoft-Edge Chromium

评论

0赞 sideshowbarker 12/2/2022
您可能需要考虑在 bugs.chromium.org/p/chromium/issues/entry 上为此提出错误报告
1赞 Yu Zhou 12/2/2022
这似乎是一个尚未修复的铬问题:link1link2。您还可以为问题加星标以添加投票并接收通知。
0赞 Brennen 12/7/2022
非常感谢你们俩的评论!我很高兴这似乎是 Chromium 中的一个问题,我一定会对这些问题进行投票。

答: 暂无答案