Page 42 - JavaScript修炼之道
P. 42

30       第三部分  UI技巧


             任务 13  制作友好的弹窗


                 不管用“真”弹窗(单独的窗口)还是“伪”弹窗(实际是当前页面的元素,只是设置成类
             似窗口的样式),都会碰到这个问题:如何让那些不能(或者不想)打开新窗口的用户访问这些
                                                         ①
             内容?想想窗口弹出被禁用的情况以及屏幕阅读器 、搜索引擎的访问等。
                 只有一种办法:先让链接真正链接到弹窗的内容,然后从那里开始逐步地改善效果。

                 如果你的内容是要作为HTML片段显示在伪弹窗中(可能还通过Ajax载入),那么不管带不
             带document标记,你都需要确保在另一处提供其访问路径。那样一来,用户就能通过普通的链接,
             以单独页面的形式访问到它,看到好的效果。

                 实际操作的要点是:用<a>标签链接到要弹出的内容(href=,或许还要加上target=
             "_blank"),然后给这些链接挂上JavaScript代码,让它们活动起来。窗口弹出代码很简单——
             就是用内置的window.open()方法。

                 如果需要伪弹窗或者光箱,一定要使用优秀的现有库以远离地狱般的跨浏览器问题和布局算
             法。这里有一些可选项:

                                  ②
                   Scripty2的UI部分
                           ③
                   jQuery UI
                                   ④
                   Dijit(基于Dojo)
                   YUI的覆盖模块
                                 ⑤
                             ⑥
                   Ext.Window
                 另外要记住,如果弹窗内容较少的话,使用单击触发的tooltip就足够了,而不必使用全功能
             的弹窗。如果遇到这种情况,查查tooltip库和模块。




             ——————————
                ① 屏幕阅读器将屏幕上的文字、图形等转换成语音或盲文,帮助视觉障碍者操作电脑。如果未做仔细的处理,弹窗
                  的内容可能无法被屏幕阅读器访问。*
                ② 参见http://github.com/madrobby/scripty2。
                ③ 参见http://jqueryui.com/。
                ④ 参见http://dojotoolkit.org/projects/dijit。
                ⑤ 参见 http://developer.yahoo.com/yui/3/overlay/。
                ⑥ 参见http://www.extjs.com/deploy/dev/docs/?class=Ext.Window。
   37   38   39   40   41   42   43   44   45   46   47