2010-09-13 12 views
5

Używam czcionki Cufon.replace do zamiany tekstu na stronie. Obecnie w trybie standardów IE8, gdy jest uruchamiany poza $ (dokumentem) .Jest to tylko ~ 50% czasu w pozostałej części czasu, gdy nastąpiły zmiany DOM (przeglądanie z IE8 wbudowanym w pasek narzędzi programisty), ale tekst nie jest wystawiany.jQuery później niż obciążenie okna

Wyłączenie zamiany i zastosowanie jej ręcznie przez konsolę aktualizuje poprawnie cały tekst. Zawijanie go w $(document).ready zatrzymuje go od zawsze - brak modyfikacji DOM (o ile mogę stwierdzić z paska narzędzi deweloperów). Jednak nie mogę ponownie ręcznie zastosować z konsoli - więc może mnie okłamać.

otoczenie go $(window).load wydaje się mieć taki sam skutek jak $(document).ready

Należy pamiętać, to tylko skutki IE8 „trybie standardowym”. Działa dobrze w Firefoksie i IE7.

Jakieś myśli?

+0

Dobrze, proszę, rozwiąż moją odpowiedź. Byłem nieco zdezorientowany, gdy zobaczyłem znak dolara i od razu pomyślałem, że to główny problem. W każdym razie, czy mógłbyś wkleić ten kod, żeby sprawdzić? Teraz wydaje się bardziej podobny do problemu z timingiem, a co możesz zrobić, to sprawdzić/zastąpić za każdym razem, gdy zmieniasz DOM (prawdopodobnie wykonasz metodę cufonRefresh, aby obsłużyć to, co możesz nazwać każdą zmianą DOM) – corroded

+0

@corroded - Cufon.refresh () nie działa, chociaż nie jestem pewien. Czy to możliwe, że Cufon ulega awarii w nieprawidłowym stanie (po pierwszym uruchomieniu) i nie może się sam usunąć, spróbuj ponownie, gdy używasz odświeżania? – tgandrews

+0

Obawiam się, że odpowiedź na to pytanie będzie naprawdę trudna bez podania kodu. Czy możesz opublikować część swojego znacznika (szczególnie tam, gdzie dołączasz dowolny JavaScript) i JavaScript, który próbujesz wykonać podczas ładowania? – ninjascript

Odpowiedz

1

Doświadczyłem tego wcześniej ... Chciałbym zawinąć to w anonimową funkcję i można również użyć prostego setTimeout, aby opóźnić to również (może nie być potrzebne).

(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

Dzięki. Usunąłem go w końcu. – tgandrews

Powiązane problemy