2010-09-13 2 views
5

Я использую Cufon.replace, чтобы заменить шрифт на сайте. В настоящее время в режиме стандартов IE8, когда это выполняется за пределами $ (документа). Уже это происходит только в 50% случаев, когда остальное время произошли изменения DOM (просмотр с помощью IE8, встроенный в панель инструментов dev), но текст отсутствует отображается.jQuery позже загрузки окна

Отключение замены и его применение вручную через консоль правильно обновляет текст. Обертывание его в $(document).ready останавливает его от когда-либо происходящего - никаких модификаций DOM (насколько я могу судить по панели инструментов dev). Однако я не могу повторно использовать ручку с консоли - так что это может вредить мне.

Подведем в $(window).load, кажется, имеет тот же эффект, как $(document).ready

Пожалуйста, обратите внимание, это только эффекты ie8 «режим Standards». Он отлично работает в Firefox и IE7.

Любые мысли?

+0

хорошая точка, lemme снимите мой ответ для этого. Я немного смутился, когда увидел знак доллара и сразу подумал, что это главная проблема. Во всяком случае, не могли бы вы вставить код, чтобы я мог проверить? Теперь это больше похоже на проблему с синхронизацией, и что вы можете сделать, это делать проверку/замену каждый раз, когда вы меняете DOM (возможно, сделать метод cufonRefresh для обработки этого, который вы можете вызвать при каждом изменении DOM) – corroded

+0

@corroded - Cufon.refresh () не работает, хотя почему я не уверен. Возможно ли, что Cufon рушится в недопустимом состоянии (при первом запуске) и не может удалить себя, попробуйте снова при использовании обновления? – tgandrews

+0

Боюсь, на самом деле будет сложно ответить на этот вопрос без какого-либо кода, на который нужно ссылаться. Можете ли вы опубликовать часть своей разметки (в частности, где вы включаете любой JavaScript) и JavaScript, который вы пытаетесь выполнить при загрузке? – ninjascript

ответ

1

Я испытал это раньше ... Я бы обернул его анонимной функцией, и вы также можете использовать простой setTimeout, чтобы задержать его (может и не понадобиться).

(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

Спасибо. Я удалил его в конце. – tgandrews

Смежные вопросы