2008-11-14 13 views

Respuesta

10

Decir que encienda contentEditable de la siguiente manera:

document.body.contentEditable = true; 

Todo lo que tiene que hacer es apagarlo para todos (o algunos) imágenes.

var imgs = document.getElementsByTagName("IMG"); 
for (var i = 0; i < imgs.length; ++i) { 
    imgs[i].contentEditable = false; 
} 
+1

Funciona para contenteditable de hecho. No parece funcionar para DesignMode.Sin embargo, la solución creó un nuevo problema: cuando una imagen se mueve y se libera, creará una copia de la imagen en la posición de intercalación en el área editable. ¿Cualquier sugerencia? – dEEf

+0

No sé mucho sobre ninguno de los dos, ¿cuál es la diferencia entre contentEditable y designMode? Si designMode no funciona, ¿podría cambiar a contentEditable? – nickf

+0

Encontré el problema en mi problema anterior (draggin de imagen): mousedown -> event.preventDefault(); Gracias nick, voy a cambiar a contentEditable ... – dEEf

1

Bueno, no se puede cambiar el tamaño de eliminar los controladores ni en Firefox ni IE ... al menos yo no pude encontrar una solución.

Al final lo logré en Firefox editando algunos archivos de configuración de la carpeta de instalación de FF y no queremos hacer eso, ¿verdad?

De todos modos, si quieres desactivar el cambio de tamaño si las imágenes (pero cambiar el tamaño de los manipuladores todavía será visible) sólo tiene que añadir un poco de estilo css como:

img { 
    width: auto !important; 
    height: auto !important; 
} 

respecto, Mihailo

1

Aunque la pregunta era una hace mucho tiempo. Cada elemento de bloque (div, img ...) se decorará con tiradores de FF. prueba que:

<div id="myDiv" contenteditable="true"><p>Sample text!</p></div> 

Sin asas, sin cambiar el tamaño, etc.

<div id="myDiv" contenteditable="true"><p>Sample text!</p><img src="picture.jpg" /></div> 

La imagen puede ser redimensionado. Así que tienes que llamar explícitamente a contenteditable = "false" para cada elemento elemental que no quieras tener identificadores, como ya dijo nickf para las imágenes.

Aún más extraño: asigne "position: absolute" a cualquiera de sus elementos, incluso el div principal, y tiene identificadores nuevamente.

+1

Me encanta cómo en stackoverflow nunca se sabe cómo afectarán sus respuestas a otras, tal vez en los años venideros. Esto: "Aún más extraño: asignar" posición: absoluta "a cualquiera de sus elementos, incluso el div principal, y tiene identificadores nuevamente". me salvó un montón de problemas en este momento :) –

5

Creo que encontrará esto mucho más aceptable. Parece que funciona en Firefox pero no estoy seguro acerca de otros navegadores:

document.execCommand("enableObjectResizing", false, false); 

Deja la capacidad de arrastrar y soltar intacta.

16

Esto funciona bien para Firefox:

document.execCommand("enableObjectResizing", false, false);

para IE que he usado:

image.attachEvent("onresizestart", function(e) { e.returnValue = false; }, false);

+0

+1 ¡esta debería ser la respuesta aceptada! – giammin

0

no puedo comentar y votar al mismo tiempo tan ... de acuerdo con nmb.ten respuesta, usted tiene que utilizar:

document.execCommand("enableObjectResizing", false, false); 

Pero funciona solo después de su contenido está completo (quiero decir, si tiene que editar algún texto guardado anteriormente).

Cuestiones relacionadas