Cufon IE Недопустимый аргумент

Ладно, я немного в тупике с этим. Я использую Cufon, чтобы заменить свой текст шрифтом, отличным от веб-стандарта. Это сценарий, который я использовал ужасно много, и в прошлом у меня никогда не было проблем с ним. Приходит IE и решает испортить мне день.

Я использую самую последнюю версию cufon (на момент написания этого поста) и ссылаюсь на ряд различных элементов в моем файле header.php (для сайта Wordpress):

    <script type="text/javascript" language="javascript" >Cufon.replace('.learnmore', { color: '#fff', textShadow: '1px 1px #0e1b0a', hover: { textShadow: '1px 1px #000',  color: '#fff'   }   });     </script>
    <script type="text/javascript" language="javascript" >Cufon.replace('.logo span, h1, h2, h4 , h5, h6, .learnmore, .prosto_button, .comment-reply-link, .slide_button, .page_title .bold p, .textonlycont, .h-title', { fontFamily: "Aller"});   </script>
    <script type="text/javascript" language="javascript" >Cufon.replace('.h-title', { textShadow: '1px 2px #5C1003' });     </script>
    <script type="text/javascript" language="javascript" >Cufon.replace('h1', { color: '-linear-gradient(white, #ececec)', textShadow: '#862905 0 2px'});   </script>
    <script type='text/javascript' src='http://localhost/wordpress/wp-content/themes/pondera/js/cufon/Vegur.font.js?ver=1.0.0'></script>
    <script type="text/javascript" language="javascript" >Cufon.replace('h3, #serv-benefit h4, p.quote, #letstalk label', { fontFamily: "Vegur"});  </script>
    <script type="text/javascript" language="javascript" >Cufon.replace('#letstalk label', { fontFamily: "Vegur", textShadow: '1px 2px #293719' }); </script>

Не уверен, что это лучший способ сослаться на несколько разных шрифтов, но он отлично работает во всех браузерах, кроме IE (в частности, v.8.0.7, который я сейчас использую). IE выдает следующий отчет об ошибке:

Сведения об ошибке веб-страницы:

Сообщение: Недопустимый аргумент. Строка: 7 символов: 8520 Код: 0 URI: http://localhost/wordpress/wp-content/themes/pondera/js/cufon/cufon-yui.js?ver=1.0.0

Я исследовал файл Cufon js, и, похоже, это было непосредственно перед ссылкой D.replaceChild. Теперь я далек от эксперта JS, поэтому я понятия не имею, что вызывает эту проблему...

Просто для справки, в качестве теста я попытался удалить всю первую ссылку Cufon.replace(... (то есть приведенный выше код), чтобы увидеть, была ли это моя плохая кодировка, но это не помогло.

Будем очень признательны за любые предложения! Заранее спасибо за то, что прочитали это, я был бы рад предоставить дополнительную информацию, если она потребуется.


person Sheixt    schedule 06.09.2011    source источник
comment
Кстати, над кодом, который я разместил, есть еще одна ссылка на шрифт js, похоже, я пропустил ее при копировании и вставке!   -  person Sheixt    schedule 06.09.2011
comment
Зачем все эти теги сценария? Все эти Cufon строки могут находиться внутри одного элемента <script></script>.   -  person epascarello    schedule 06.09.2011
comment
Можете ли вы сделать cufon-yui.js доступным для просмотра?   -  person epascarello    schedule 06.09.2011
comment
@epascarello - ммм, у меня нет хорошего ответа на этот вопрос... Я исправлю как можно скорее! Я буквально только что скопировал код: cufon.shoqolate.com /js/cufon-yui.js?v=1.09i ... и ошибка все еще существует   -  person Sheixt    schedule 07.09.2011


Ответы (1)


Хорошо, я думаю, что нашел душу (своего рода)... и, возможно, ошибку в самом Cufon (хотя я не удивлюсь, если ошибусь!).

Как предложил Эпаскарелло, я доказал, что макет моего кода меньше тегов script:

    <script type="text/javascript" language="javascript" >
        Cufon.replace('.logo span, h1, h2, h5, h6, .learnmore, .prosto_button, .comment-reply-link, .slide_button, .page_title .bold p, .textonlycont, .h-title', { fontFamily: "Aller"});
        Cufon.replace('h1', { color: '-linear-gradient(white, #ececec)', textShadow: '#862905 0 2px'});
        Cufon.replace('.learnmore', {   color: '#fff', textShadow: '1px 1px #0e1b0a', hover: { textShadow: '1px 1px #000',  color: '#fff'   }});
        Cufon.replace('.h-title', { textShadow: '1px 2px #5C1003' });
    </script>
    <script type='text/javascript' src='http://localhost/wordpress/wp-content/themes/pondera/js/cufon/Vegur.font.js?ver=1.0.0'></script>
    <script type="text/javascript" language="javascript" >
        Cufon.replace('h3, #serv-benefit h4, p.quote, #letstalk label', { fontFamily: "Vegur"});
        Cufon.replace('#letstalk label', { fontFamily: "Vegur", textShadow: '1px 2px #293719' });
    </script>

Пока я это делал, мне потребовалось некоторое время, чтобы последовательно протестировать код по мере его вставки, чтобы увидеть, когда произошла ошибка. Во время этого я проверил каждый селектор и все рабочие бары один... h4!?!? Чтобы уточнить, если вы измените первую строку в приведенном выше коде на следующую, произойдет ошибка IE:

        Cufon.replace('.logo span, h1, h2, h4, h5, h6, .learnmore, .prosto_button, .comment-reply-link, .slide_button, .page_title .bold p, .textonlycont, .h-title', { fontFamily: "Aller"});

Странно да?! Суть, которую я использую, состоит в том, чтобы изменить мою разметку, чтобы избежать тегов H4, но, по-видимому, это ошибка в Cufon?

Надеюсь, это поможет кому-то!

person Sheixt    schedule 11.09.2011