生成事件上下文菜单

时间:2013-07-18 17:00:25

标签: javascript javascript-events

我已经开发了js代码,允许我通过另一个动作显示上下文菜单。例如,通过左键单击或按键。 我设法做了我想要的大多数元素,除了一些像gmail或hotmail中的邮件。右键单击时,会出现一个带有“存档”或“标记为未读”的小菜单。这不是出现的经典菜单。 我想做的是强制显示这些经典菜单。 这是我到目前为止生成contextmenu事件的代码:

window.document.addEventListener("click", associate, false);
window.document.addEventListener("mousedown", associate, false);
window.document.addEventListener("mouseup", associate, false);

var associate = function(event)
{
    var element = event.srcElement||event.target;
    element.addEventListener("click", context, true);
    element.addEventListener("mousedown", context, true);
    element.addEventListener("mouseup", context, true);
};

var context = function(event)
{
    if(event.button == 0)
    {
        var element = event.srcElement||event.target;
        menu(element, event);
        event.stopPropagation();
        event.preventDefault();
    }
};

var menu = function(element, event)
{
    var evt = element.ownerDocument.createEvent('MouseEvents');
    evt.initMouseEvent('contextmenu', true, true, element.ownerDocument.defaultView, 1, event.screenX, event.screenY, event.clientX, event.clientY, false, false, false, false, 2, null);
    element.dispatchEvent(evt);
}; 

有了这个,例如在gmail的电子邮件中,当我左键单击时,我仍然有特殊的gmail上下文菜单。 你知道我怎么办吗?

0 个答案:

没有答案