ПРИМЕЧАНИЕ. В некоторых браузерах переменная e не будет установлена, и при этом возникают разные проблемы. В любом случае, возникает вопрос, нужно ли получить целевой тип события, а затем проверить, является ли это текстом.или текстовое поле ..
вот как вы извлекаете цель события:
function eventHandler(e)
{
var targ;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
}
Вот демо
, такимЦелевой тип с вами, вы можете обработать условие для отключения правой кнопки мыши следующим образом:
function checkIfTypeIsTextOrTextArea(event)
{
var targ;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
return targ==="text" || targ="textarea";
}
function eventHandler(e)
{
var evt=e;
if(!e)
evt=window.event;
if(!checkIfTypeIsTextOrTextArea(evt))
//code to disable right click
}