src/cm/media/js/lib/yui/yui_3.10.3/docs/event/contextmenu.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>The contextmenu Event Fix</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        <a href="#toc" class="jump">Jump to Table of Contents</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
            <h1>The contextmenu Event Fix</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
                <div class="content"><style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
#todo-example {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    margin-top: 2em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    max-width: 300px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
    *width: 300px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
    border: 2px solid #aaa;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
    padding: 10px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
#todo-example legend {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
    color: #888;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
    position: relative;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    bottom: .4em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
    font-size: 1.3em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    *position: auto;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
#todo-example ol {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
    list-style: decimal;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    padding-left: 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
    margin: 0 0 1em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
#todo-example li {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    clear: right;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
    margin-left: 25px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
    margin-right: 30px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
    *margin-left: 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
    padding: 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
#todo-example .delete-todo {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
    float: right;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
    position: relative;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
    right: -30px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
    background: url(../assets/event/remove.png) no-repeat right;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
    border: 0 none;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
    width: 30px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
    overflow: hidden;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
    text-indent: 30px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
    opacity: 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
    *filter: alpha(opacity=50);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
#todo-example input {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
    width: 220px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
    border: 1px solid #aaa;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
    xbackground: url(../assets/event/add.png) no-repeat right;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
    padding: 5px 0 5px 5px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
</style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
<h2 id="understanding-the-problem">Understanding the problem</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
<p>You want to add a custom context menu to an element, so you add a "contextmenu" event listener to the element. That listener is going to do two basic things:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
<ol>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
    <li>Prevent the display of the browser's context menu</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
    <li>Position your custom context menu over top of/relative to the target of the event</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
</ol>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
<p>The code will look something like this:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
<pre class="code prettyprint">function onContextmenu(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    if (!contextmenu) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
      contextmenu = new Y.Overlay({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
          bodyContent: &quot;&lt;ul class=\&quot;contextmenu\&quot;&gt;&lt;li&gt;Option 1&lt;&#x2F;li&gt;&lt;li&gt;Option 2&lt;&#x2F;li&gt;&lt;li&gt;Option 3&lt;&#x2F;li&gt;&lt;&#x2F;ul&gt;&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
          visible: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
          constrain: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
      });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
      contextmenu.render(Y.one(&quot;body&quot;));                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    contextmenu.set(&quot;xy&quot;, [e.pageX, e.pageY]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
    contextmenu.show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
btn.on(&quot;contextmenu&quot;, onContextmenu);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
This code will work great if the "contextmenu" is triggered via the mouse. However, the "contextmenu" event is one of those device-independent events: can be triggered via the mouse, or the keyboard (on Windows using the Menu key, or the Shift + F10 shortcut). When it's triggered via the keyboard you will run into problems. Here's an overview of the obstacles and inconsistencies by browser + platform:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
<h3 id="internet-explorer">Internet Explorer</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
    <li>When the user triggers the "contextmenu" event, the x and y coordinates of the event will be relative to the current position of the mouse cursor. Not useful since the event was fired via the keyboard and the mouse cursor could be anywhere on the screen.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
    <li>When the user presses Shift + F10 IE's menubar will gain focus, with the first item ("File") highlighted. To fix that, you'll need to bind a "keydown" listener for Shift + F10 and call e.preventDefault(). That WILL prevent the menubar from gaining focus, but will also prevent the "contextmenu" event from firing when the user presses Shift + F10.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
<h3 id="firefox-on-windows">Firefox on Windows</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
  <li>Shift + F10 won't fire the "contextmenu" event, but WILL trigger the display of the browser's context menu.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
  <li>If the "contextmenu" event is triggered via the Menu key, the x and y coordinates will be close to the target's bottom left corner.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
<h3 id="chrome-on-windows">Chrome on Windows</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
    <li>Both the Menu key and Shift + F10 fire the "contextmenu" event</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
    <li>If the "contextmenu" event is triggered via the Menu key, the x and y coordinates will be close to the target's bottom left corner.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
<h3 id="safari-chrome-and-firefox-on-the-mac">Safari, Chrome and Firefox on the Mac</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
    <li>No keyboard shortcut available for triggering the "contextmenu" event, unless the screen reader (VoiceOver) is running, in which case the shortcut is Shift + Ctrl + Alt + M.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
    <li>When VoiceOver is running and the user presses Shift + Ctrl + Alt + M, the x and y coordinates will reference the center of the event target.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
<h3 id="opera">Opera</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
    <li>On Windows, Shift + F10 won't fire the "contextmenu" event, but WILL trigger the display of the browser's context menu.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
    <li>On Mac, Shift + Command + M won't fire "contextmenu" event, but WILL trigger the display of the browser's context menu.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
<p>Here's a working example. The following button has a custom context menu. Try to invoke it via the keyboard to see the problems yourself:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
<style type="text/css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
  .contextmenu {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
      background: #ccc;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
      padding: 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
      margin: 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
      list-style-type: none;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
  .contextmenu li {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
      white-space: nowrap;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
</style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
<button type="button" id="btn-1">I've got a context menu</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
<script type="text/javascript">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
    YUI().use("overlay", function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
      var btn = Y.one("#btn-1"), 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
          contextmenu;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
      function onContextmenu(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
          e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
          if (!contextmenu) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
            contextmenu = new Y.Overlay({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
                bodyContent: "<ul class=\"contextmenu\"><li>Option 1</li><li>Option 2</li><li>Option 3</li></ul>",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
                visible: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
                constrain: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
            contextmenu.render(Y.one("body"));                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
          }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
          contextmenu.set("xy", [e.pageX, e.pageY]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
          contextmenu.show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
      }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
      
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
      btn.on("contextmenu", onContextmenu);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
<h2 id="the-value-of-the-contextmenu-synthetic-event">The value of the "contextmenu" synthetic event</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
<p>Returning to the task at hand, as a developer you just want to bind a single "contextmenu" event listener and have it do the right thing regardless of how the event was triggered. This is what the "contextmenu" synthetic event does; it fixes all the aforementioned problems and inconsistencies while maintaining the same signature as a standard "contextmenu" DOM event. Additionally, it provides two bits of sugar:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
<ol>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
    <li>Prevents the display of the browser's context menu. (Since you're likely going to be doing that anyway.)</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
    <li>Follows Safari's model such that when the "contextmenu" event is fired via the keyboard, the x and y coordinates of the event will reference the center of the target.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
</ol>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
<p>All that's required to use the "contextmenu" synthetic event is to add "event-contextmenu" to the use() statement.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
<pre class="code prettyprint">YUI().use(&quot;event-contextmenu&quot;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
<p>Here's a working example: The following button has a custom context menu. On Windows the context menu can be invoked by pressing either Menu or using Shift + F10, on the Mac use Shift + Ctrl + Alt + M.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
<button type="button" id="btn-2">I've got a context menu</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
<script type="text/javascript">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
    YUI().use("event-contextmenu", "overlay", function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
      var btn = Y.one("#btn-2"), 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
          contextmenu;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
      function onContextmenu(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
          if (!contextmenu) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
            contextmenu = new Y.Overlay({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
                bodyContent: "<ul class=\"contextmenu\"><li>Option 1</li><li>Option 2</li><li>Option 3</li></ul>",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
                visible: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
                constrain: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
            contextmenu.render(Y.one("body"));                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
          }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
          contextmenu.set("xy", [e.pageX, e.pageY]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
          contextmenu.show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
      }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
      
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
      btn.on("contextmenu", onContextmenu);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
<p>Here's the code for the example:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
<pre class="code prettyprint">YUI().use(&quot;event-contextmenu&quot;, &quot;overlay&quot;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
  var btn = Y.one(&quot;#btn-2&quot;), 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
      contextmenu;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
  function onContextmenu(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
      if (!contextmenu) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
        contextmenu = new Y.Overlay({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
            bodyContent: &quot;&lt;ul class=\&quot;contextmenu\&quot;&gt;&lt;li&gt;Option 1&lt;&#x2F;li&gt;&lt;li&gt;Option 2&lt;&#x2F;li&gt;&lt;li&gt;Option 3&lt;&#x2F;li&gt;&lt;&#x2F;ul&gt;&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
            visible: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
            constrain: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
        contextmenu.render(Y.one(&quot;body&quot;));                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
      }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
      contextmenu.set(&quot;xy&quot;, [e.pageX, e.pageY]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
      contextmenu.show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
  btn.on(&quot;contextmenu&quot;, onContextmenu);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
                    <div id="toc" class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
                            <h2 class="no-toc">Table of Contents</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
                            <ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
<a href="#understanding-the-problem">Understanding the problem</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
<a href="#internet-explorer">Internet Explorer</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
<a href="#firefox-on-windows">Firefox on Windows</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
<a href="#chrome-on-windows">Chrome on Windows</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
<a href="#safari-chrome-and-firefox-on-the-mac">Safari, Chrome and Firefox on the Mac</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
<a href="#opera">Opera</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
<a href="#the-value-of-the-contextmenu-synthetic-event">The value of the "contextmenu" synthetic event</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
                                        <li data-description="Use the Event Utility to attach simple DOM event handlers.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
                                            <a href="basic-example.html">Simple DOM Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
                                        <li data-description="Using the synthetic event API to create a DOM event that fires in response to arrow keys being pressed.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
                                            <a href="synth-example.html">Creating an Arrow Event for DOM Subscription</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
                                        <li data-description="Supporting cross-device swipe gestures, using the event-move gesture events">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
                                            <a href="swipe-example.html">Supporting A Swipe Left Gesture</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
                                        <li data-description="Creating an accessible menu button using the Focus Manager Node Plugin, Event&#x27;s delegation support and mouseenter event, along with the Overlay widget and Node&#x27;s support for the WAI-ARIA Roles and States.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
                                            <a href="../node-focusmanager/node-focusmanager-button.html">Accessible Menu Button</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
                                        <li data-description="Shows how to extend the base widget class, to create your own Widgets.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
                                            <a href="../widget/widget-extend.html">Extending the Base Widget Class</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
                                        <li data-description="Example Photo Browser application.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
                                            <a href="../dd/photo-browser.html">Photo Browser</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
                                        <li data-description="Portal style example using Drag &amp; Drop Event Bubbling and Animation.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
                                            <a href="../dd/portal-drag.html">Portal Style Example</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
                                        <li data-description="Use IO to request data over HTTP.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
                                            <a href="../io/get.html">HTTP GET to request data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
    assets: '../assets/event',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
    name: 'event',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
    title: 'The contextmenu Event Fix',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
YUI.Env.Tests.examples.push('basic-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
YUI.Env.Tests.examples.push('synth-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
YUI.Env.Tests.examples.push('swipe-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
YUI.Env.Tests.examples.push('node-focusmanager-button');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
YUI.Env.Tests.examples.push('widget-extend');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
YUI.Env.Tests.examples.push('photo-browser');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
YUI.Env.Tests.examples.push('portal-drag');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
YUI.Env.Tests.examples.push('get');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
</html>