未捕获语法错误:缺少)参数列表之后

时间:2019-02-18 作者:jn blue

加载页面时出现此错误。我有5.0.3的WordPress。

参数列表后未标记的语法错误:缺少)格式:1845

链接重定向到此代码:

<script type=\'text/javascript\'>( \'fetch\' in window ) || document.write( \'<script src="https://learn.blueworkforce.com/wp-includes/js/dist/vendor/wp-polyfill-fetch.min.js\' defer onload=\'"></scr\' + \'ipt>\' );( document.contains ) || document.write( \'<script src="https://learn.blueworkforce.com/wp-includes/js/dist/vendor/wp-polyfill-node-contains.min.js\' defer onload=\'"></scr\' + \'ipt>\' );( window.FormData && window.FormData.prototype.keys ) || document.write( \'<script src="https://learn.blueworkforce.com/wp-includes/js/dist/vendor/wp-polyfill-formdata.min.js\' defer onload=\'"></scr\' + \'ipt>\' );( Element.prototype.matches && Element.prototype.closest ) || document.write( \'<script src="https://learn.blueworkforce.com/wp-includes/js/dist/vendor/wp-polyfill-element-closest.min.js\' defer onload=\'"></scr\' + \'ipt>\' );

2 个回复
SO网友:Tim

在每个脚本上重复相同的错误。查看属性分隔符。他们开始使用双引号,然后切换:

<script src="https://...js\' defer onload=\'">
                          ^              ^
应为:

<script src="https://...js" defer onload="">
我标记的第一个单引号结束了包含的字符串。这不是无效的,但不是预期的。这一点之后的一切都在等待语法错误的发生。

我不知道这些错误是如何在您的代码中结束的,但我注意到它们并不是WordPress核心正常输出脚本的。

我的猜测是,以下字符串已拼接到脚本输出中,希望使用单引号。

\' defer onload=\'
可能是某个插件使用某个过滤器对所有脚本执行此操作,可能是Mos Speed up 这似乎do this.

SO网友:Ronak Ganatra

这个问题是由于WordPress Gutenberg的一些js不支持延迟。我也有同样的问题,我添加了一个WordPress挂钩来延迟js。现在我添加了一个条件,钩子不会调用管理页面,它解决了我的问题。

旧代码:

add_filter( \'clean_url\', \'defer_parsing_of_js\', 11, 1 );
新代码:

if ( !is_admin() ) {
add_filter( \'clean_url\', \'defer_parsing_of_js\', 11, 1 );
}
在这段代码之后,它并没有向管理端脚本添加延迟,它保存了我。