好吧,我对此有些困惑。我要Cufon用非Web标准字体替换我的文本。这是我使用了很多脚本的脚本,过去从来没有遇到过问题。随之而来的是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(...引用(即上面的代码)中的所有小节,以查看这是否是我的较差编码,但这无法解决。

任何建议将不胜感激!在此先感谢您阅读本文档,如果需要,我很乐意提供更多信息。

最佳答案

好的,我想我已经找到了(某种程度上)灵魂痛……而且可能是Cufon本身的一个错误(尽管如果我错了,我也不会感到惊讶!)。

正如Epascarello所建议的,我被证明可以减少脚本标记的代码布局:

    <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中的错误?

希望这对某人有帮助!

关于javascript - Cufon IE无效参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7320195/

10-10 16:34