JS中的Uncaught SyntaxError,可能还有WordPress
我不太清楚为什么我的代码会造成这种情况。
我在标题中有这个jquery脚本:
$(document).ready(function() { $('.control').on('click', function(e) { e.preventDefault(); var field = $(this).data('field'); $('.hider:visible').fadeOut("slow", function() { $('#' + field + '-gallery, #' + field + '-tag').fadeIn("slow"); }); }); var randomIndex = Math.floor((Math.random() * 100) + 1) % 3; console.log(randomIndex); var field = $($('a').get(randomIndex)).data('field'); $('#' + field + '-gallery, #' + field + '-tag').fadeIn("slow"); });
当我重新加载页面时,没有任何反应,因此看起来脚本没有运行。 当我在Chrome上检查页面时,我发现这个错误位于名为(程序)的选项卡中,它位于前几行中:
if (window.top.require) { Uncaught SyntaxError: Unexpected token ILLEGAL window.top.require("ripple/bootstrap").inject(window, document);}
我不知道我的代码中导致此错误的是什么。 当我拿出我的剧本时,它会消失。 不太确定是否是wordpress或jqueryUI的东西(我为另一个插件加载了)。
你和…之间的最后一行有一个非法的隐形字符;
。
将光标放在;
,并开始退格直到你删除)
,然后重新键入它们。
}); // ^^---between these
您会注意到,在退格时,光标将无法移动一次。 那是在删除隐形字符的时候。
从jsFiddle或其他类似网站复制/粘贴代码时会发生这种情况。
角色是unicode \u200B
。
AFAIK,你不知道它来自哪里的脚本代码,是由Blackberry仿真器Ripple生成的,当它插入一个生成的脚本你的document.documentElement时( 参见GitHub )。 我已经看到这种行为导致我的许多项目出现问题,例如,使用dataType HTML插入ajax结果并使我的选择器混淆,或者将jjery表单插件与ajax响应更脏(无法链接到它)没有足够的声誉)等我觉得它可能会干扰你的javascript? 希望能帮助到你。