我周一上班时收到了一封电子邮件,上面写着我们管理/维护的Wordpress网站上的可视编辑器没有工作。
当然,我能够复制这个问题,并发现控制台中存在大量Javascript错误。

我搜索了第一个错误,并在Wordpress的论坛上找到了几篇文章,人们需要在wp-config.php文件中添加以下内容来解决这个问题。
define('CONCATENATE_SCRIPTS', false );然而,在整个互联网上,没有任何地方可以解释为什么突然需要添加这些内容。
正因为如此,我开始深入研究这个问题,看看我能不能找出到底是怎么回事。
我点击Wordpress管理区域,注意到这个问题总是带着这行代码回来。
Uncaught SyntaxError: missing ) after argument list
load-scripts.php?c=1&load[]=jquery-core,jquery-migrate,utils,underscore,thickbox,shortcode,media-up…:227第227行
https://DOMAIN_NAME/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,utils,underscore,thickbox,shortcode,media-upload&ver=4.3.1如下所示
if(!params['modal']){jQuery(document).bind('keydown.thickbox',function(e){if(e.which==27){tb_remove();return false;}});}}catch(e){}}当我在Wordpress管理区域内的以下页面上时,就会发生这种情况。
// Dashboard
/wp-admin/index.php
// Plugins page
/wp-admin/plugins.php
// Edit user page
/wp-admin/user-edit.php?user_id=###
// Edit post page
/wp-admin/post.php?post=###&action=edit在每个页面上,load-script.php源代码是不同的,所以我在下面提供这个信息。
// Dashboard
/wp-admin/index.php
https://DOMAIN_NAME/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,utils,underscore,thickbox,shortcode,media-upload&ver=4.3.1
// Plugins page
/wp-admin/plugins.php
https://DOMAIN_NAME/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,utils,underscore,wp-util,wp-a11y,updates,thickbox,shortcode,media-upload&ver=4.3.1
// Edit user page
/wp-admin/user-edit.php?user_id=###
https://DOMAIN_NAME/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,utils,zxcvbn-async,underscore,thickbox,shortcode,media-upload&ver=4.3.1
// Edit post page
/wp-admin/post.php?post=###&action=edit
https://DOMAIN_NAME/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,underscore,thickbox,shortcod&load%5B%5D=e,plupload,jquery-ui-position,jquery-ui-datepicker,jquery-ui-menu,jquery-ui-autocomplete,jquery-ui-resizable,jquery-ui-draggable&load%5B%5D=,jquery-ui-button,jquery-ui-dialog,media-upload&ver=4.3.1然后,我来到管理区域中的一个页面,在该页面中,Javascript错误不存在!
// The page that lists all of the pages on the site
/wp-admin/edit.php?post_type=page在此页面上,load-script.php源代码如下所示
// The page that lists all of the pages on the site
/wp-admin/edit.php?post_type=page
https://DOMAIN_NAME/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,utils,thickbox,underscore,shortcode,media-upload&ver=4.3.1然后,我直接进入该文件是一个浏览器,并专门搜索下面的字符串,因为这是所有其他页面都抛出错误的字符串。
if(!params['modal']){jQuery(document).bind('keydown.thickbox',function(e){if(e.which==27){tb_remove();return false;}});}}catch(e){}}令我惊讶的是,这一行代码并没有缩小,而在发生Javascript错误的所有其他情况下,代码都被缩小了。
if(!params['modal']){
jQuery(document).bind('keydown.thickbox', function(e){
if ( e.which == 27 ){ // close
tb_remove();
return false;
}
});
}
} catch(e) {
//nothing here
}
}服务器上的任何内容都没有更改/更新,也没有更新Wordpress、主题或插件。
我甚至还禁用了所有插件,同时激活了默认的二十五个主题,但问题仍然存在。
甚至有Wordpress网站在同一服务器上,这个网站有问题,而那些其他网站没有这个问题。
那一天结束时,我真的不知道我上面提供的详细信息是否能帮助我弄清楚到底是怎么回事,以及为什么突然需要将define('CONCATENATE_SCRIPTS', false );添加到wp-config.php文件中,使Javascript错误消失,使可视化编辑器再次工作。
如果有的话,这是我见过的任何人提供的关于那些需要将define('CONCATENATE_SCRIPTS', false );添加到wp-config.php文件以消除错误的人提供的最详细信息。
发布于 2016-08-23 23:06:15
在JS代码中有一个语法错误:
不清楚这段代码试图实现什么,但语法错误很明显:
试着改变:
if(!params['modal']){
jQuery(document).bind('keydown.thickbox', function(e){
if ( e.which == 27 ){ // close
tb_remove();
return false;
}
});
}
} catch(e) {
//nothing here
}
}至:
if(!params['modal']){
jQuery(document).bind('keydown.thickbox', function(e){
if ( e.which == 27 ){ // close
tb_remove();
return false;
}
});
}类似于从注册为“短代码”的文件中加载的代码,还可以尝试使用wp_dequeue_script函数删除冲突的脚本或将它们上下移动到队列中。
wp_dequeue_script("shortcode");
wp_enqueue_script("shortcode","script_url",array('jquery','lastScript'));https://stackoverflow.com/questions/32996217
复制相似问题