如何禁用_moz_resizing?

时间:2010-05-25 03:15:56

标签: javascript css firefox resize

我正在使用nicEdit编辑器,我已经添加了自己的自定义图像大小调整脚本。但我想禁用Firefox中出现的默认_moz_resizing。

我希望能够更好地控制正在调整大小的图像。 (例如:仅允许图像调整大小并继承父容器的宽度。)

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

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

2 个答案:

答案 0 :(得分:24)

在Firefox中,可以使用enableObjectResizing命令禁用本机映像大小调整控件。必须在将designMode设置为“on”后执行此命令。

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

禁用原生调整大小控件后,您不应该看到_moz_resizing属性出现。它显示为本机控件的副作用,但属性的存在或值不会直接影响控件本身。它的唯一目的是在重新调整大小的元素周围触发一个薄的黑色轮廓。

大多数浏览器内的富文本编辑器都使用iframe来显示其内容。如果此iframe的CSS位置发生更改(例如,从静态更改为绝对),则将撤消enableObjectResizing命令的效果。可以重复该命令以再次关闭本机控件。这是非常令人困惑的,因为没有迹象表明情况确实如此,但确实如此。如果enableObjectResizing对您不起作用,请确保在>设置任何CSS位置值后设置它。

另请注意,“enableObjectResizing”命令将影响图像和绝对定位元素的缩放器(如果在可编辑内容区域中存在任何此类元素)。

我准备了minimal test page,这说明了这个例子。

答案 1 :(得分:1)

您可以通过转到Firefox中的about:config来禁用此功能 - 将browser.enable_automatic_image_resizing更改为false。