Voglio rendere un elemento img non selezionabile e non trascinabile perché lo sto usando come controllo ridimensionamento della finestra (facendo clic e trascinando il div circostante si ridimensiona una finestra).ondragstart non equivalente a .addEventListener ("dragstart"
funziona perfettamente bene come la seguente: (. 3,6 *)
noSelect[x].ondragstart = function() {return false};
Ma poiché questo sarà utilizzato in un'estensione per Firefox che utilizza un XPCNativeWrapper dietro ogni HTMLElement, non posso usare ".onsdragstart" e devono utilizzare ".addEventListener"
Il problema è l'equivalente al codice precedente non funziona. Cliccando e trascinando l'img trigger trascinamento immagine di default di Firefox, invece di ridimensionare la mia finestra il seguente:
noSelect[x].addEventListener("dragstart", function() {return false}, false)
sono le due righe di codice sopra citati non sono equivalenti?
contesto completa per gli oggetti non selezionabile:
var noSelect = document.getElementsByClassName("noSelect")
for (x in noSelect) {
if (x == "length")
break
noSelect[x].unselectable = "on";
noSelect[x].onselectstart = function(){return false};
noSelect[x].ondragstart = function() {return false};
noSelect[x].style.userSelect = "none"; // w3c standard
noSelect[x].style.MozUserSelect = "none"; // Firefox
}
1. L'evento viene attivato in entrambi i casi. Metto un avviso nella funzione e si spara. 2. Secondo http://help.dottoro.com/ljpncnwi.php ondragstart è disponibile in FF. Ma non posso usare x.ondragstart = a causa di XDCNativeWrapper. 3. Se addEventListener è più semplice, perché sostituire ".ondragstart" con ".addEventListener" mostra comportamenti diversi? Spara ancora, ma non sovrascrive il trascinamento predefinito di FF come fa .ondragstart. – TinyTimZamboni
il comportamento predefinito può essere interrotto con la cattura del mouse – kapa