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