PC端软件和移动端应用中的弹窗是它们和用户之间进行信息交互的重要方式之一,也是GUI(Graphical User Interface)重要的组成部分。
在最早的CLI(Command Line Interface-命令行界面)界面时,囿于文字的表现形式和交互形式的单一性,并没有弹窗的界面元素,但已经有了类似的提示信息,但不是模态的,用户很容易忽略。
在GUI交互方式诞生后,在操作系统里和在浏览器上,逐渐出现并完善了三种基本的弹框类型,这三种弹窗类型分别针对三种不同的使用场景,这些弹框都是模态的,如果用户不对当前的弹框界面元素做出反馈,就不能进行后续操作,这三种弹窗形式分别是:
1. Alert弹窗
Alert弹窗是用模态方式阻止用户当前操作,并告知用户相关信息。
Alert弹窗仅仅单向通知用户某个信息,不能收集用户的反馈信息,系统仅仅侦测判断用户被动接收到信息并点击了“确定”按钮,系统就会解散弹窗并继续进行后续操作。
Alert弹窗的交互特点是:模态地阻断用户当前和界面的其他交互,强迫用户点击“确定”按钮来确保用户明确了解当前发生的状况,Alert弹窗只是线性流程上的一个断点,一个安全阀,本身除了返回是否执行的状态,不返回任何其他值,所以也不可能在点击“确定”按钮后提供不同支路。
所以Alert弹窗最适合的使用场景包括:强出错提示、强知会通知、新手引导、系统反馈等等不需要用户给出选择,只需要用户单向被动接收系统信息的使用场景。
Alert弹窗在IE和Chrome等浏览器上可以用Javascript代码快速实现,你可以在浏览器地址栏输入“javascript:alert();”查看效果。
Alert弹窗以其简单易用、可递归使用、可本地调用等特性而受到开发者青睐,成为最广泛使用的一种交互控件,然而也正是因为其这种使用简单的特性而成为垃圾代码、恶意代码的重要工具。
日本刈谷市警方近日质询并指控了一名13岁的女学生,起因是她将一段恶意代码的链接放到了在线公告栏上,广泛传播代码。
这段有问题的恶意代码是弹出警告消息的无限循环,每当你点击“确定”就会立即显示新的消息,这种恶意代码就是利用了Aert弹窗的简单易用的特性。
而这段代码只有短短几行:
for ( ; ; ) {window.alert(" ∧_∧ ババババ\n( ・ω・)=つ≡つ\n(っ ≡つ=つ\n`/ )\n(ノΠU\n何回閉じても無駄ですよ~ww\nm9(^Д^)プギャー!!\n byソル (@0_Infinity_)")}
为了抗议日本警察将国中女生当做罪犯以及将分享链接定性为犯罪的荒谬行径,东京的程序员Kimikazu Kato在GitHub上发布了一个名为Let's Get Arrested快来抓我啊的项目。将只包含上述代码的项目托管到GitHub网站上,并呼吁大家一起分享,将犯罪行为置于警方触手可及的显眼位置。
这可以说是Alert弹框使用场景和被滥用可能的最佳代言了。
无论是在PC操作系统还是移动端操作系统上,系统自带的Alert弹窗都渐渐无法满足产品设计者和开发者的不断增加的用户体验提升要求和功能需求,所以产生了很多种形式的自定义样式。
但万变不离其宗,Alert弹窗基本的交互特点:单向通知、无需用户选择、模态显示等等可以让我们在林林总总的交互控件中,一眼就认出这种使用最频繁、交互最简单的弹窗控件。