Firefox - designMode: disabilita gli handle di ridimensionamento delle immagini
-
08-07-2019 - |
Domanda
Come posso impedire all'utente di essere in grado di ridimensionare un'immagine in designMode? (disabilita le maniglie quando si fa clic sull'immagine)
Soluzione
Supponi di attivare contentEditable in questo modo:
document.body.contentEditable = true;
Tutto quello che devi fare è disattivarlo per tutte (o alcune) immagini.
var imgs = document.getElementsByTagName("IMG");
for (var i = 0; i < imgs.length; ++i) {
imgs[i].contentEditable = false;
}
Altri suggerimenti
Funziona bene con Firefox:
document.execCommand (" enableObjectResizing " ;, false, false);
Per IE ho usato:
image.attachEvent (" onresizestart " ;, function (e) {e.returnValue = false;}, false);
Penso che lo troverai molto più accettabile. Sembra funzionare in Firefox ma non sono sicuro di altri browser:
document.execCommand("enableObjectResizing", false, false);
Resta intatta l'abilità di trascinamento della selezione.
Beh, non puoi rimuovere quei gestori di ridimensionamento né in Firefox né in IE ... almeno non sono riuscito a trovare una soluzione.
Alla fine l'ho gestito in Firefox modificando alcuni file di configurazione dalla cartella di installazione di FF e non vogliamo farlo, giusto?
Ad ogni modo, se vuoi disabilitare il ridimensionamento se le immagini (ma i gestori di ridimensionamento saranno ancora visibili) aggiungi solo uno stile CSS come:
img {
width: auto !important;
height: auto !important;
}
saluti, Mihailo
Anche se la domanda era molto tempo fa. Ogni elemento a blocchi (div, img ...) sarà decorato con maniglie di FF. Provalo:
<div id="myDiv" contenteditable="true"><p>Sample text!</p></div>
Nessun handle, nessun ridimensionamento ecc.
<div id="myDiv" contenteditable="true"><p>Sample text!</p><img src="picture.jpg" /></div>
L'immagine può essere ridimensionata. Quindi devi chiamare esplicitamente contenteditable = " false " per ogni blocco elem non vuoi avere le maniglie, come già detto da nickf per le immagini.
Ancora più strano: assegnare "posizione: assoluta" a uno qualsiasi dei tuoi elementi - anche il div genitore - e ha di nuovo le maniglie.
Non posso ancora commentare e votare così ... secondo la risposta di nmb.ten, devi usare:
document.execCommand("enableObjectResizing", false, false);
Ma funziona solo dopo i tuoi contenuti sono compilati (intendo se devi modificare del testo salvato prima).