CodeColorer v0.9.9 一处JS加载BUG

codecolorer.php line 134 :

1
add_action('wp_print_scripts', array('CodeColorerLoader', 'RegisterQuicktag'));

这里本来用 wp_print_scripts 就不太好,后台应该用admin_print_scripts 或者 admin_print_footer_scripts 。因wp_print_scripts是对前台后台均有作用的。

再看其line 177 function RegisterQuicktag():
直接 

1
if(is_admin())

作判断,即只要是在后台就加载此JS。
此判断导致后台JS错误,因为非post.php和post-new.php页面WP是没有加载quicktags的,因此不存在edButton() 这个js函数。JS自然报错。

这里给出一个简单的解决办法:
codecolorer.php line 134修改为:

1
 add_action('admin_print_scripts', array('CodeColorerLoader', 'RegisterQuicktag'));

用admin_print_footer_scripts 不行。

line 177 修改为:

1
 if (basename($_SERVER['SCRIPT_NAME']) == 'post-new.php' || basename($_SERVER['SCRIPT_NAME']) == 'post.php' ) {
更多
3 Responses Post a comment
  1. neverno

    一直在用这代码插件,不过貌似没发现加载js失败错误~

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS