Newsgroup: it.comp.lang.javascript
Titolo: [?] tasto destro netscape 6.2

Dunque...
ho messo un scriptino per bloccare il tasto destro del mouse (evitate
commenti sull'utilità di ciò...è solo per capire le differenze tra i 2
browser che sto facendo qualche test)
Script (eseguo blocca_dx() onload; remmati altri test fatti; la var br
identifica netscape, se!="IE", su questo sono sicuro che funziona):
function blocca_dx() {
 //for (var i=0; i<document.images.length; i++)
document.images[i].onmousedown=no;
 //for (var i=0; i<document.links.length; i++)
document.links[i].onmousedown=no;
 document.onmousedown=no;
 if (document.layers) window.captureEvents(Event.MOUSEDOWN);
 window.onmousedown=no;
}
function no(e) {
 //if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2))
return false;
 if(((br=="IE")&&(event.button==2))||((br!="IE")&&(e.which!=1))) {
  alert("(c) SlowMorphiArt");
  if(br=="IE") event.cancelbubble=true; else e.cancelBubble=true;
  //alert(e.cancelBubble);
  return false;
 }
 return true;
}
Orbene, dott. Netscape 6.2 se ne sbatte altamente...o, meglio, a seconda dei
millisecondi che ci mette l'alert a comparire fa apparire o meno il menù.
Ora:
a) mi sfugge qualcosa?
b) dopo le chromeless hanno tolto anche questa diavoleria?
Già che ci siamo segnalo anche che questo fetecchione non caga minimamente
le classi che NON iniziano per una lettera => ho creato delle classi che
differiscono per lo spessore del bordo, es. 1tr, 2tr etc... Magari a
qualcuno interessa (prima di capire perché visualizzava alcuni pezzi sì e
altri no ho elencato tutti i santi del calendario...)

altri no ho elencato tutti i santi del calendario...)
qui forse ha ragione il dotto'
in 
http://www.w3.org/TR/CSS2/grammar.html
leggo:
In CSS1, a class name could start with a digit (".55ft"), unless it
was a dimension (".55in"). In CSS2, such classes are parsed as unknown
dimensions (to allow for future additions of new units). To make
".55ft" a valid class, CSS2 requires the first digit to be escaped
(".\55ft")

 caga minimamente le classi che NON iniziano per una lettera
A JavaScript identifier must start with a letter, underscore (_), or dollar
sign ($); subsequent characters can also be digits (0-9).
Maurizio.

eh, lo avevo immaginato (mi sa che anche nei vecchi linguaggi dos era cosě)

 (".\55ft")
eggià...

Niente da fare
ho aggiunto:
 - if(e.cancelable) e.preventDefault(); //e.cancelable restituisce true
 - e.stopPropagation();
niente, continua a presentare o meno il menù a seconda della velocità con
cui apre la alert...



solo per il gusto raggiungere lo scopo,
quindi esula forse dagli scopi veri del tuo quesito
(di studio intendo eh)
function blocca_dx() {
for (var i=0; i<document.images.length; i++)
document.images[i].onmousedown=mah;
 
}
function mah()
{
 this.oncontextmenu = function (evt) { alert("(c) SlowMorphiArt");
      evt.preventDefault?evt.preventDefault():evt.returnValue="false";
   } };
intercettavamo non tutti gli eventi che si scatenano direi
ciao


porc@!#
ero andato a naso per IE
per renderlo cross
IE5+ bisogna martellare di piu'
vabbeh per ns6+ mi pare funzioni,
ma il controllo messo  e' inutile 

funziona! (ie>=5, netscape>=6.0,mozilla>=1.0)
Non č servita la parte delle immagini, provato su una pagina con immagini e
altro e funziona in ogni parte.
Riporto lo scriptino finale (dove br=="IE" => internet explorer, altrimenti
netscape/mozilla).
non so per netscape4 (quel captureEvents dovrebbe essere per lui, non so
come si comporta perň nella function...forse per questo ci vuole il ciclo
tra le immagini?)
Grazie
function blocca_dx() {
 document.onmousedown=no;
 if (document.layers) window.captureEvents(Event.MOUSEDOWN);
 window.onmousedown=no;
}
function no(e) {
 if((br=="IE")&&(event.button==2)) {
  alert("(c) SlowMorphiArt");
  event.cancelBubble=true;
  return false;
 } else if((br!="IE")&&(e.which!=1)) {
   this.oncontextmenu = function (e) {e.preventDefault();}
  alert("(c) SlowMorphiArt");
   e.cancelBubble=true;
  return false;
 }
 return true;
}