Jag ha satt oncontextmenu="return false;" i body taggen.
Sedan har jag på ett input fält satt:
oncontextmenu="document.body.oncontextmenu='return true';" onBlur="document.body.oncontextmenu='return false;'"
Om jag på sidan klickar på med context knappen så händer ingenting. När jag klickar i input fältet så kommer contextmenyn upp men när jag går ifrån fältet så kan jag klicka var som helst och få upp contextmenyn.
Hur löser jag det?
Om jag förstått dig rätt vill du att menyn bara ska fungera i text fält så att man kan pasta in text?
Det här fungerar i IE 5+ och Mozilla:
document.oncontextmenu = function(e)
{
if(!e) var e = window.event;
var oElm = e.target || e.srcElement;
// Här lägger du till under vilka element menyn ska fungera under:
if(oElm.nodeName != "TEXTAREA")
return false;
}
Med denna function kollar du eventets (vart du högerklickar) source element och returnerar false om elementet är en textarea.
Jag fick det att fungera på TEXTAREA men hur får jag det att fungera på vanliga text inputfält?
<input type="text">
Du kan alerta oElm.nodeName för att se vad ett textfält returnerar ("INPUT").
Sen:
if(oElm.nodeName != "INPUT" && oElm.nodeName != "TEXTAREA")
return false;
}