JS中的Uncaught SyntaxError,可能还有Wordpress

时间:2012-07-27 15:57:19

标签: javascript jquery wordpress

我不太清楚为什么我的代码会造成这种情况。

我在标题中有这个jquery脚本:

<script>
  $(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");
  })​;
   </script>

当我重新加载页面时,没有任何反应,因此脚本似乎没有运行。当我在Chrome上检查页面时,我发现这个错误出现在名为(程序)的标签中,它出现在前几行中:

    if (window.top.require) {
Uncaught SyntaxError: Unexpected token ILLEGAL
    window.top.require("ripple/bootstrap").inject(window, document);}

我不知道我的代码中导致此错误的是什么。当我拿出我的剧本时,它会消失。不太确定是否是wordpress或jqueryUI的东西(我已经为另一个插件加载了)。

2 个答案:

答案 0 :(得分:5)

);之间的最后一行有一个非法的隐形字符。

将光标放在;之后,然后开始退格,直到删除),然后重新键入它们。

    })​;
 //  ^^---between these

您会注意到,在退格时,光标将无法移动一次。那是在删除隐形字符的时候。

当从jsFiddle或其他类似网站复制/粘贴代码时会发生这种情况。

该字符是unicode \u200B

答案 1 :(得分:0)

AFAIK是一个你不知道它来自哪里的脚本代码,它是由Blackberry仿真器Ripple生成的,当它插入一个生成的脚本你的document.documentElement(see at GitHub)时。我已经看到这种行为导致我的许多项目出现问题,例如,使用dataType HTML插入ajax结果并混淆我的选择器,或者使用jquery表单插件使我的ajax响应变得更脏(无法链接到它因为没有足够的声誉),等等。我认为这可能会干扰你的javascript?希望它有所帮助。