14

如何防止用户在 designMode 中调整图像大小?(单击图像时禁用手柄)

4

6 回答 6

16

这适用于 Firefox:

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

对于 IE,我使用过:

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

于 2010-06-12T14:16:18.160 回答
10

假设您像这样打开 contentEditable :

document.body.contentEditable = true;

您所要做的就是为所有(或部分)图像关闭它。

var imgs = document.getElementsByTagName("IMG");
for (var i = 0; i < imgs.length; ++i) {
    imgs[i].contentEditable = false;
}
于 2008-11-14T07:48:37.117 回答
5

我想你会发现这更容易接受。似乎可以在 Firefox 中使用,但我不确定其他浏览器:

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

它使拖放功能保持不变。

于 2010-04-30T04:01:56.520 回答
1

好吧,你不能在 Firefox 和 IE 中删除那些调整大小的处理程序……至少我找不到解决方案。

最后,我通过编辑 FF 安装文件夹中的一些配置文件在 Firefox 中进行了管理,我们不想这样做,对吧?

无论如何,如果您想禁用调整图像大小(但调整大小处理程序仍然可见),只需添加一些 css 样式,例如:

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

问候,米海洛

于 2009-02-05T11:32:29.150 回答
1

虽然这个问题是很久以前的问题了。每个块元素(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 已经对图像所说的那样。

更奇怪的是:将“位置:绝对”分配给您的任何元素 - 甚至是父 div - 它再次具有句柄。

于 2010-01-25T19:04:24.317 回答
0

我还不能评论和投票,所以......根据nmb.ten的回答,你必须使用:

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

仅在您填写内容后才有效(我的意思是如果您必须编辑之前保存的一些文本)。

于 2014-03-20T16:40:10.607 回答