Firefox - designMode:禁用图像调整大小手柄

发布于 2024-07-08 05:17:05 字数 39 浏览 6 评论 0原文

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

How can I prevent the user from being able to resize an image in designMode? (disable the handles when image is clicked)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

⊕婉儿 2024-07-15 05:17:05

这对于 Firefox 来说效果很好:

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

对于我使用过的 IE:

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

This works fine for Firefox:

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

For IE i've used:

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

百变从容 2024-07-15 05:17:05

假设您像这样打开 contentEditable:

document.body.contentEditable = true;

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

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

Say you turn contentEditable on like this:

document.body.contentEditable = true;

All you have to do is turn it off for all (or some) images.

var imgs = document.getElementsByTagName("IMG");
for (var i = 0; i < imgs.length; ++i) {
    imgs[i].contentEditable = false;
}
分開簡單 2024-07-15 05:17:05

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

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

它保留了拖放功能。

I think you'll find this much more acceptable. Seems to work in Firefox but I'm not sure about other browsers:

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

It leaves the drag and drop ability intact.

笑梦风尘 2024-07-15 05:17:05

好吧,你无法在 Firefox 和 IE 中删除这些调整大小处理程序......至少我找不到解决方案。

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

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

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

问候,
米哈伊洛

Well, you cannot remove those resize handlers neither in Firefox nor IE... at least I couldn't find a solution.

At the end I managed that in Firefox by editing some configuration files from FF installation folder and we don't want to do that, right?

Anyway, if you want to disable resizing if images (but resize handlers will still be visible) just add some css style like:

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

regards,
Mihailo

岁月苍老的讽刺 2024-07-15 05:17:05

虽然这个问题已经很久了。
每个块元素(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 - 并且它再次具有句柄。

Although the question was a long time ago.
Every block element (div, img...) will be decorated with handles from FF.
Test it:

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

No handles, no resize etc.

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

The image can be resized.
So you have to explicitly call contenteditable="false" for every block elem you do not want to have handles, as nickf said already for the images.

Even more weird:
assign "position:absolute" to any of your elements - even the parent div - and it has handles again.

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

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

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

I cannot comment and vote yet so... according to nmb.ten's answer, you have to use:

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

But it works only after your content is filled in (I mean if you have to edit some text saved before).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文