javascript alert() 框的默认声音

Posted

技术标签:

【中文标题】javascript alert() 框的默认声音【英文标题】:default sound for javascript alert() box 【发布时间】:2011-04-06 00:51:37 【问题描述】:

我注意到 javascript alert() 框会在控制面板 > 声音 > 声音选项卡 > Windows > 感叹号中播放系统声音“感叹号”。因此,更改那里的“感叹号”wav 文件会更改警报框播放的声音。

我已经在 FF 3+​​ 和 IE8+ 中测试过这个(工作),但似乎在 Chrome 5+ 中不起作用。我只在 Windows 7 中测试过。我的问题是:更改“感叹号”声音是否总是会更改 javascript 警报框播放的声音,例如从 Windows XP - Win7 和所有现代浏览器(chrome排除)?

这里有一个简单的警告框供测试 -> http://www.javascripter.net/faq/alert.htm

我想我正在寻找关于警报框如何工作、浏览器如何决定播放哪种声音(或者是操作系统?)以及如何确保跨浏览器的兼容性的更好解释。一些谷歌搜索在这个主题上并不是很有启发性。

【问题讨论】:

在 Linux(使用 Arch)上,我的任何浏览器都听不到任何声音。我不会因为任何严重的事情而依赖它。 【参考方案1】:

它以这种方式工作的原因是他们(至少是 IE)使用 win MessageBox api 来生成弹出窗口,因此更改系统文件会更改所有使用 MessageBox api 的应用程序。 Chrome 肯定不会使用这个 API。因此,要回答您的问题,如果您想要跨浏览器的统一声音,请不要依赖默认设置。

【讨论】:

【参考方案2】:

是的,在 Windows 中,使用相同声音的不仅仅是浏览器警报。他们都使用相同的声音文件。

我猜微软把它放在那里是为了 IE(和其他窗口形式的警报),而 Firefox 劫持了它,因为,为什么不呢。

【讨论】:

以上是关于javascript alert() 框的默认声音的主要内容,如果未能解决你的问题,请参考以下文章

javascript alert和confirm怎么在HTML里面使用

如何更改警报框的样式?

如何在javascript中设置选择2框的默认值

selenium基础(警告框的处理)

selenium+webdriver+python 中警告框的处理方法

检测系统音量(声音)和插入的音频插孔的Javascript