好吧,我对此有些困惑。我要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/