Menús contextuales en HTML (AIR)

Adobe AIR 1.0 y posterior

En HTML el contenido que se muestra utilizando el objeto HTMLLoader, el evento contextmenu se puede utilizar para mostrar un menú contextual. Como valor predeterminado, un menú contextual se muestra automáticamente cuando el usuario invoca el evento de menú contextual en el texto seleccionado (haciendo clic con el botón derecho del ratón o haciendo clic en el comando del texto) Para impedir que el menú predeterminado se abra, se debe detectar el evento contextmenu y llamar el método preventDefault() del objeto de evento:

function showContextMenu(event){ 
    event.preventDefault(); 
}

Luego se puede mostrar un menú contextual personalizado utilizando las técnicas DHTML o mostrando un menú contextual nativo de AIR. En el siguiente ejemplo se muestra un menú contextual nativo llamando el método display() del menú en respuesta al evento contextmenu HTML:

<html> 
<head> 
<script src="AIRAliases.js" language="JavaScript" type="text/javascript"></script> 
<script language="javascript" type="text/javascript"> 
 
function showContextMenu(event){ 
    event.preventDefault(); 
    contextMenu.display(window.nativeWindow.stage, event.clientX, event.clientY); 
} 
 
function createContextMenu(){ 
    var menu = new air.NativeMenu(); 
    var command = menu.addItem(new air.NativeMenuItem("Custom command")); 
    command.addEventListener(air.Event.SELECT, onCommand); 
    return menu; 
} 
 
function onCommand(){ 
    air.trace("Context command invoked."); 
} 
 
var contextMenu = createContextMenu(); 
</script> 
</head> 
<body> 
<p oncontextmenu="showContextMenu(event)" style="-khtml-user-select:auto;">Custom context menu.</p> 
</body> 
</html>