我正在调试我们的第三方脚本存在的问题,Wordpress用户通过将脚本和html的片段复制/粘贴到其帖子的正文中来使用它们(当然是非现实示例):
<script>
window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } };
window.foobar.hello();
</script>
我注意到有些wordpress安装会将其包装在CDATA中,有些则不会(可能通过进行某种DOCTYPE检查-尽管我测试过的所有主题都使用HTML5 doctype)。
但是,当将脚本包装在CDATA中时,用户将受到以下bug的叮咬:https : //core.trac.wordpress.org/ticket/3670(结束符>
错误地替换为>
),这导致浏览器忽略了脚本内容:
<script>// <![CDATA[ window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); // ]]></script>
我本人并没有拥有太多WP-Fu,而谷歌搜索只能使我按原样识别问题,所以我的问题是:WordPress何时将内联脚本确切地包装到CDATA部分中?用户可以以某种方式阻止此行为吗?用户可以在不修改WP内核的情况下以某种方式解决上述错误吗?