2010-09-13 11 views
5

Estoy usando Cufon.replace para reemplazar algún tipo de texto en el sitio. Actualmente en el modo de estándares IE8 cuando se ejecuta fuera de $ (documento) .ya está sucediendo ~ 50% del tiempo el resto del tiempo se han producido los cambios DOM (viendo con IE8 incorporado en la barra de herramientas de desarrollo) pero no hay texto desplegado.jQuery más tarde que la carga de la ventana

Desactivando el reemplazo, y al aplicarlo manualmente a través de la consola, se actualiza todo el texto correctamente. Envolverlo en $(document).ready evita que ocurra, no hay modificaciones DOM (por lo que puedo decir desde la barra de herramientas de desarrollo). Sin embargo, no puedo volver a aplicar manualmente desde la consola, por lo que puede estar mintiéndome.

envolviéndolo en $(window).load parece tener el mismo efecto que $(document).ready

Tenga en cuenta que esto sólo efectos IE8 "modo estándar". Funciona bien en Firefox e IE7.

¿Alguna idea?

+0

buen punto, déjame mi respuesta para eso. Me confundí un poco cuando vi el signo de dólar e inmediatamente pensé que era el problema principal. De todos modos, ¿podrías pegar el código para poder verificarlo? Ahora parece más un problema de tiempo y lo que puede hacer es verificar/reemplazar cada vez que cambie el DOM (probablemente haga un método de cufonRefresh para manejar esto que puede llamar a cada cambio de DOM) – corroded

+0

@corroded - Cufon.refresh () no funcionó, aunque por eso no estoy seguro. ¿Es posible que Cufon se bloquee en un estado no válido (cuando se ejecuta por primera vez) y no se pueda eliminar, intente de nuevo al usar la actualización? – tgandrews

+0

Me temo que va a ser muy difícil responder a este sin algún código para referirse. ¿Puedes publicar algo de tu marcado (específicamente donde incluyes cualquier JavaScript) y el JavaScript que intentas ejecutar con carga? – ninjascript

Respuesta

1

Lo he experimentado antes ... Lo envolvería en una función anónima y también puede usar un simple setTimeout para retrasarlo también (puede no ser necesario).

(function($){ 
    // Your Cufon.replace() 
    Cufon.replace('h1', { fontFamily: 'stack-overflow', hover: true }); 
    Cufon.now(); 

    // OPTIONAL - Delay by 150ms (you can experiment with this value) 
    setTimeout(function(){ Cufon.refresh(); }, 150); 

})(jQuery); 
+0

Gracias. Lo eliminé al final. – tgandrews

Cuestiones relacionadas