为什么wordpress在使用wp_register_script()时会放置"text/rocketscript"而不是"text/javascript"?

Tab*_*med 51 wordpress

我在wordpress插件中插入了以下代码:

   wp_deregister_script('jquery');
   wp_register_script('jquery', "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js");
   wp_enqueue_script('jquery');
Run Code Online (Sandbox Code Playgroud)

以下内容与浏览器相呼应:

<script type='text/rocketscript' data-rocketsrc='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js?ver=3.3.1'></script>
Run Code Online (Sandbox Code Playgroud)

代替:

<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script>
Run Code Online (Sandbox Code Playgroud)

我不知道发生了什么.也许wp_register_script()应该以这种方式工作.我还测试了是否有任何jquery代码在客户端工作,但它没有.请帮忙...

小智 53

它很容易修复.

您必须更改以下标记: <script type="text/javascript"></script>

加: data-cfasync="false"

例:

<script data-cfasync="false" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

  • @WaheedUrRehman看到[这个要点](https://gist.github.com/webaware/8949605)我必须采取的方法.注意:`data-async ="false"`必须在`src`属性之前! (4认同)

Emi*_*dın 15

可能是wordpress插件之一正在使用CloudFlare.

https://support.cloudflare.com/hc/en-us/articles/200168056-What-does-Rocket-Loader-do-

尝试禁用所有插件并逐个重新启用它们,以找出导致此问题的插件.实际上这不是问题.