首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制使用定义(‘串联脚本’,false);突然之间

强制使用定义(‘串联脚本’,false);突然之间
EN

Stack Overflow用户
提问于 2015-10-07 15:22:10
回答 1查看 5.5K关注 0票数 6

我周一上班时收到了一封电子邮件,上面写着我们管理/维护的Wordpress网站上的可视编辑器没有工作。

当然,我能够复制这个问题,并发现控制台中存在大量Javascript错误。

我搜索了第一个错误,并在Wordpress的论坛上找到了几篇文章,人们需要在wp-config.php文件中添加以下内容来解决这个问题。

代码语言:javascript
复制
define('CONCATENATE_SCRIPTS', false );

然而,在整个互联网上,没有任何地方可以解释为什么突然需要添加这些内容。

正因为如此,我开始深入研究这个问题,看看我能不能找出到底是怎么回事。

我点击Wordpress管理区域,注意到这个问题总是带着这行代码回来。

代码语言:javascript
复制
Uncaught SyntaxError: missing ) after argument list
load-scripts.php?c=1&load[]=jquery-core,jquery-migrate,utils,underscore,thickbox,shortcode,media-up…:227

第227行

代码语言:javascript
复制
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

如下所示

代码语言:javascript
复制
if(!params['modal']){jQuery(document).bind('keydown.thickbox',function(e){if(e.which==27){tb_remove();return false;}});}}catch(e){}}

当我在Wordpress管理区域内的以下页面上时,就会发生这种情况。

代码语言:javascript
复制
// 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源代码是不同的,所以我在下面提供这个信息。

代码语言:javascript
复制
// 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错误不存在!

代码语言:javascript
复制
// The page that lists all of the pages on the site
/wp-admin/edit.php?post_type=page

在此页面上,load-script.php源代码如下所示

代码语言:javascript
复制
// 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

然后,我直接进入该文件是一个浏览器,并专门搜索下面的字符串,因为这是所有其他页面都抛出错误的字符串。

代码语言:javascript
复制
if(!params['modal']){jQuery(document).bind('keydown.thickbox',function(e){if(e.which==27){tb_remove();return false;}});}}catch(e){}}

令我惊讶的是,这一行代码并没有缩小,而在发生Javascript错误的所有其他情况下,代码都被缩小了。

代码语言: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文件以消除错误的人提供的最详细信息。

EN

回答 1

Stack Overflow用户

发布于 2016-08-23 23:06:15

在JS代码中有一个语法错误:

不清楚这段代码试图实现什么,但语法错误很明显:

试着改变:

代码语言:javascript
复制
if(!params['modal']){
                 jQuery(document).bind('keydown.thickbox', function(e){
                       if ( e.which == 27 ){ // close
                              tb_remove();
                              return false;
                       }
                 });
          }

   } catch(e) {
          //nothing here
   }
}

至:

代码语言:javascript
复制
if(!params['modal']){
                 jQuery(document).bind('keydown.thickbox', function(e){
                       if ( e.which == 27 ){ // close
                              tb_remove();
                              return false;
                       }
                 });                 
}

类似于从注册为“短代码”的文件中加载的代码,还可以尝试使用wp_dequeue_script函数删除冲突的脚本或将它们上下移动到队列中。

代码语言:javascript
复制
 wp_dequeue_script("shortcode");
 wp_enqueue_script("shortcode","script_url",array('jquery','lastScript'));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32996217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档