定义之前使用的ConvertEntities()

时间:2011-02-12 作者:zac

我在每个页面(包括管理区域)上加载thickbox时都会产生一个错误。这将被打印到html中

<script type=\'text/javascript\'>
<![CDATA[ */ var thickboxL10n = {
next: "Next &gt;", prev: "&lt; Prev",image: 
"Image",  of: "of", close: "Close", 
noiframes: "This feature requires inline frames. You have iframes disabled or your browser does not support them." }; 
try{convertEntities(thickboxL10n);}catch(e){}; /* ]]> */ </script> 
我真的不在乎,但它正在破坏firefox,当项目处于开发中期时,firefox很糟糕。问题在于:

未定义convertEntities

第55行请尝试{convertEntities(thickboxL10n);}渔获物(e){};

我试着用一个函数来阻止它

 function conditional_thickbox() {
  global $post;
  if (is_singular() &&
    strpos($post->post_content,\'class="thickbox"\') !== false) {
      wp_enqueue_script(\'thickbox\');
      wp_enqueue_style(\'thickbox\');
  }
}
add_action(\'wp_print_styles\',\'conditional_thickbox\');
这很好,但它从任何地方删除,我意识到这是对Wordpress图像上传功能的依赖。

我想我在这里找到了解决方法:

http://core.trac.wordpress.org/attachment/ticket/16227/convertEntities-Firebug-Fix.diff

这需要我破解核心,有什么好办法可以解决这个问题吗?

1 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

这个convertEntities 函数是在中定义的utils.js, 但是,如果使用脚本串联,则需要将该文件包含在后面。因为它位于try-catch子句中,所以没有(总是)注意到该错误。

解决方案是包括convertEntities 加载此代码之前的函数。在WordPress 3.1中,这现在包括在l10n.js, which you cannot disable. 一个快速而肮脏的解决方案是复制此代码并将其写在每个页面的顶部,这样您就可以确定它是可用的。

结束