El siguiente método:setTimeout (f, 0) equivalente? ¿Por qué soluciona problemas entre navegadores?
Init: function (selector, settings)
{
setTimeout(function()
{
var s =
{
width: '100%',
script_url: '/Content/Scripts/tiny_mce/tiny_mce.js',
theme: "advanced",
plugins: "autolink,lists,pagebreak,style,layer,table,paste,directionality,noneditable,visualchars,xhtmlxtras,template",
theme_advanced_buttons1: "fontselect,fontsizeselect,|,bold,italic,underline,forecolor,backcolor,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist",
theme_advanced_buttons2: "",
theme_advanced_buttons3: "",
theme_advanced_buttons4: "",
theme_advanced_more_colors: false,
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_statusbar_location: "none",
theme_advanced_resizing: false,
convert_urls: !!$(selector).data("richEditor-ConvertUrls") // by default we don't convert urls
};
$.extend(s, settings);
$(selector).tinymce(s);
},0);
}
obras en todos los navegadores, por alguna razón, necesito la llamada setTimeout(f,0)
para Firefox, este método se llama en una carga parcial Ajax el MVC, sin esta llamada, se bloquea el editor en Firefox y los saltos de página (haciendo clic en los resultados de las cosas en las excepciones más de las veces). con la llamada, todo funciona a la perfección.
Me preguntaba cómo podría evitar esta llamada a setTimeout (a través de alguna otra solución), y si esa no fuera una opción, me gustaría saber por qué.
Tengo miedo de que esta no sea la solución más limpia para este caso.
¿Su devolución de llamada ajax actualiza su página con los contenidos? Esto podría estar disparando antes de que el DOM se haya actualizado. Si ese es el caso, creo que podrías usar el evento jQuerys listo para esperar a que el DOM termine antes de aplicar tinymce al '$ (selector)'. – JesseBuesking
actualiza el DOM, pero esto también se ejecuta dentro de '$ (f() {});' – bevacqua
¿Hay alguna razón por la que declare 's' dentro del tiempo de espera y no fuera del método Init (aparte de publicarlo aquí). ¿También hay alguna forma de que puedas recrear este problema en jsfiddle? Eso me haría más fácil tratar de ayudar. – JesseBuesking