Firefox - designMode: отключить ручки изменения размера изображения

Как я могу запретить пользователю изменять размер изображения в designMode? (отключите ручки при щелчке по изображению)

Ответы

Ответ 1

Скажите, что вы включаете contentEditable следующим образом:

document.body.contentEditable = true;

Все, что вам нужно сделать, это отключить его для всех (или некоторых) изображений.

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

Ответ 2

Это отлично работает для Firefox:

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

Для IE я использовал:

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

Ответ 3

Я думаю, вы найдете это гораздо более приемлемым. Кажется, работает в Firefox, но я не уверен в других браузерах:

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

Сохраняет возможность перетаскивания.

Ответ 4

Ну, вы не можете удалить эти обработчики изменения размера ни в Firefox, ни в IE... по крайней мере, я не смог найти решение.

В конце концов мне удалось это сделать в Firefox, отредактировав некоторые файлы конфигурации из папки установки FF, и мы не хотим этого делать, верно?

В любом случае, если вы хотите отключить изменение размера, если изображения (но обработчики изменения размера по-прежнему будут видны), просто добавьте стиль css, например:

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

С уважением,  Михайло

Ответ 5

Хотя вопрос был давным-давно. Каждый элемент блока (div, img...) будет украшен ручками из FF. Проверьте его:

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

Нет ручек, без изменения размера и т.д.

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

Изображение может быть изменено. Таким образом, вы должны явно вызвать contenteditable = "false" для каждого элемента блока, который вы не хотите иметь дескрипторы, поскольку nickf сказал уже для изображений.

Еще более странно: присвойте "position: absolute" любому из ваших элементов - даже родительскому div - и он снова обрабатывает.

Ответ 6

Я не могу комментировать и голосовать, поэтому... согласно запросу nmb.ten, вы должны использовать:

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

Но работает только после вашего содержимого заполняется (я имею в виду, если вам нужно отредактировать какой-либо текст, сохраненный ранее).