Javascript TinyMCE和Firefox 11

Javascript TinyMCE和Firefox 11,javascript,firefox,tinymce,Javascript,Firefox,Tinymce,正如你们大多数人所知,Firefox11更新是在几天前发布的。 发布后,我收到通知,我们的web应用程序中有一些奇怪的行为。 我们在一个页面上有多个TinyMCE实例,只有第一个实例可以正常工作。其他实例在肉眼看来不可编辑,但实际上对“其他”实例所做的更改将在提交时保存 在一次不错的谷歌会议之后,我注意到其他人也有同样的问题,但在大多数情况下,解决方案是将Tiny更新到3.5b2(我目前正在使用3.37),或者删除/添加一些插件。两个都不适合我 我还注意到,当手动调整Tiny的大小时,文本得到渲

正如你们大多数人所知,Firefox11更新是在几天前发布的。 发布后,我收到通知,我们的web应用程序中有一些奇怪的行为。 我们在一个页面上有多个TinyMCE实例,只有第一个实例可以正常工作。其他实例在肉眼看来不可编辑,但实际上对“其他”实例所做的更改将在提交时保存

在一次不错的谷歌会议之后,我注意到其他人也有同样的问题,但在大多数情况下,解决方案是将Tiny更新到3.5b2(我目前正在使用3.37),或者删除/添加一些插件。两个都不适合我

我还注意到,当手动调整Tiny的大小时,文本得到渲染,调整大小的实例工作正常

有人吗


更新:我制作了一个包含多个实例(3.5b2版)的全新网页,所有内容都在FF11上完美运行。问题似乎出在我们的web应用程序的其他地方。我将在几个小时后将此作为答案发布。

在body tag关闭之前添加此脚本

jQuery(window).load( function() {
    jQuery(".mceEditor .mceLayout").each(function(i,ele){
        jQuery("#"+ele.id).css('width',jQuery("#"+ele.id).width()+10)
    });
});

这是我的3.3.9.3解决方案(感谢Thomas的输入):


没有jquery的解决方案

try {
    function addEvent(obj, evType, fn){ 
        if (obj.addEventListener){ 
            obj.addEventListener(evType, fn, false); 
            return true; 
        } else if (obj.attachEvent){ 
            var r = obj.attachEvent("on"+evType, fn); 
            return r; 
        } else { 
            return false; 
        } 
    }
    addEvent(window, 'load', function() {
        var divs = document.getElementsByClassName('mceEditor');
        for (d in divs) {
            var iframes = divs[d].getElementsByTagName('iframe');
            for (i in iframes) {
                iframes[i].style.width = iframes[i].style.width = '500px';
            }
        }
    }
    );
} catch(err) {}

我创建了一个包含多个实例(3.5b2版)的新网页,所有内容都在FF11上完美运行。问题似乎出在我们的web应用程序的其他地方。

Ohh该死,我在1分钟前更新了firefox,但我没有这些问题。我通过类属性初始化了JQuery上的每个TinyBox,这可能会有所帮助。我会睁大眼睛。有没有办法初始化每个实例?我能循环遍历Tiny并为它们调用一个init函数吗?是的,当然我在这里发布了一个方法:你可以使用数组tinymce循环遍历编辑器。编辑器我不知道怎么做。我想这样做:循环编辑器[I].init();增加控件宽度的原因是什么?
try {
    function addEvent(obj, evType, fn){ 
        if (obj.addEventListener){ 
            obj.addEventListener(evType, fn, false); 
            return true; 
        } else if (obj.attachEvent){ 
            var r = obj.attachEvent("on"+evType, fn); 
            return r; 
        } else { 
            return false; 
        } 
    }
    addEvent(window, 'load', function() {
        var divs = document.getElementsByClassName('mceEditor');
        for (d in divs) {
            var iframes = divs[d].getElementsByTagName('iframe');
            for (i in iframes) {
                iframes[i].style.width = iframes[i].style.width = '500px';
            }
        }
    }
    );
} catch(err) {}