2010-05-25 70 views
7

我正在使用nicEdit编辑器,并且已将自己的自定义图像大小调整脚本添加到它。但我想禁用Firefox中出现的默认_moz_resizing。如何禁用_moz_resizing?

我想更好地控制被调整大小的图像。 (例如:只允许图像调整大小并继承父容器的宽度。)

所以我写了一个自定义脚本。但是,由于Firefox有自己的图像调整大小控制(_moz_resizing),我该如何禁用它?如果没有办法这样做,我有一个非常简单的解决方法,即检测Firefox是否关闭自定义脚本并使用_moz_resizing。

但我不会有细致的控制,我将不得不依靠Firefox中的浏览器错误。 :(

回答

1

您可以将有关禁用此:。配置在Firefox - 改变browser.enable_automatic_image_resizing

22

在Firefox中,原生影像缩放控件可以使用enableObjectResizing命令禁用此命令后,必须执行的designMode已被设置为“开”。

document.designMode = "on"; 
document.execCommand('enableObjectResizing', false, 'false'); 

一旦本地大小调整控件被禁用,你不应该看到_moz_resizing属性出现。它显示为本地控制的副作用,但存在或价值的属性并不直接影响控件本身,它的唯一目的将在元素重新调整大小的周围触发一个薄的黑色轮廓。

大多数浏览器中的富文本编辑器使用iframe来显示其内容。如果此iframe的CSS位置发生更改(例如,从静态到绝对),它将撤销enableObjectResizing命令的效果。可以重复该命令以将本地控件再次关闭。这很混乱,因为没有迹象表明情况应该如此,但事实确实如此。如果enableObjectResizing不适用于你,请确定你设置了之后你设置了任何CSS位置值。

另请注意,“enableObjectResizing”命令将影响图像的大小调整和绝对定位的元素(如果存在可编辑内容区域内的元素)。

我编写了一个minimal test page说明了这个的一个工作示例。