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)

È stato utile?

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).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top