当前位置: 首页 > 面试题库 >

Chrome浏览器未捕获的语法错误:令牌意外无效

魏英勋
2023-03-14
问题内容

Chrome尝试在页面上加载脚本文件时收到主题错误。它说它在javascript文件的最后一行。我似乎找不到任何问题。firefox中没有错误,脚本可以按预期工作。仅使用表单验证

// JavaScript Document
$(function() {
  $('#wm-form').submit(function() {
    var errors = false;
    var errorMsg = "";
    $('.required').each(function() {
      if(!validField($(this))) {
        errorMsg += $(this).attr('name').capitalize() + " cannot be blank\n";
        errors = true;
      }
    });
    var emailAddress = $('#email');
    if(isValid(emailAddress) && !(/^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+)*$/.test(emailAddress.val()))) {
      errorMsg += "Not a valid email address. Please enter in a correctly formatted email address";
      errors = true;
    }
    if(errors) {
      alert(errorMsg);
      return false;
    }
  });

  $('.form-focus').click(function() {
    $(document).scrollTop(0);
    $('#first_name').focus();
    return false;
  });
});

function validField(element) {
  if(!isValid(element.val()) || (element.attr('placeholder') && element.attr('placeholder') == element.val()) || 
    (element.attr('type') == 'radio' && !checkedRadio(element))) {
    return false;
  }
  else {
    return true;
  }
}

function isValid(ele) {
  if(ele == null || ele == '') {
    return false;
  }
  else {
    return true;
  }
}

String.prototype.capitalize = function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
};

function checkedRadio (element) {
  var valid = false;
  $('input[name="'+ element.attr("name") +'"]:checked').each(function() {
    valid = true;
  });

  return valid;
}​

问题答案:

该资源末尾有某种伪造的字符。尝试删除最后一行并将其添加回去。

我无法弄清楚那里到底是什么…

_编辑_我认为这是一个零宽度的空间,Unicode200B。似乎很奇怪,我当然不能肯定这不是Stackoverflow工件,但是当我将包括最后一行在内的最后一个函数复制/粘贴到Chrome控制台时,就会收到错误消息

此类字符的臭名昭著的来源是jsfiddle这样的网站。我并不是说它们有什么问题-
这只是某些事情的副作用,也许是使用内容可编辑的输入小部件。

如果您怀疑遇到了这种情况,并且您使用的是MacOS或Linux/Unix,则od命令行工具可以(尽管相当难看)向您显示源代码文件字符中的数字值。某些IDE和编辑器也可以显示“有趣”字符。请注意,此类字符并不总是有问题。例如,在字符串常量中嵌入Unicode字符是完全可以的(无论如何,使用最合理的编程语言)。当语言解析器在不期望字符时遇到字符时,就会开始出现问题。



 类似资料:
  • 我正在尝试使用React创建一个简单的网站,但由于某些原因,它只显示一个空白页面。 显示在控制台日志上的错误是未捕获的语法错误:意外令牌 非常感谢。 HTML: 主JS: Navbar: 身体

  • 我试图发出一个Ajax调用来访问一个web服务并获得响应。但是获取未捕获的语法错误:意外的标记 Request标头如下: 请求URL:http://10.10.1.5:8089/axis2/services/cmtlpmservice/getAllMonitors?callback=回调 接受:/ 接受-编码:gzip,通货紧缩,sdch 接受-语言:en-US,en; q=0.8 授权:基本YW

  • 问题内容: 我一直在尝试从Steam API中提取数据,但没有运气,因为我总是会遇到上述错误。这是我正在使用的代码: 我省略了我的API密钥。我看过许多其他帖子,但无法弄清楚问题出在哪里。我试过使用Jsonp,常规json,也试过使用after ,但无济于事。 问题答案: 解决方案是添加一个您的jQuery代码将调用的本地代理。您的代理将是服务器端代码(PHP,Python,Ruby等),它将查询

  • 问题内容: 我在MooTools脚本中运行AJAX调用,在Firefox中运行正常,但是在Chrome中出现错误,我无法确定原因。注释掉代码以确定错误代码在什么地方不会产生任何结果,我认为这可能与返回JSON有关。在控制台中检查,我看到返回的JSON是这样的: 我没有看到任何问题,为什么会发生此错误? 问题答案: 我刚刚解决了这个问题。导致标准Request调用出现问题的原因是,这是我改用的代码:

  • 我正在尝试开始在ReactJS中创建一个站点。然而,当我试图将我的JS放在一个单独的文件中时,我开始遇到这样的错误:“uncaughtSyntaxerror:uncontractedtoken” 我尝试添加添加到JS文件的顶部,但它没有修复任何问题。下面是HTML和JS文件。有没有关于出了什么问题的想法? HTML JS 编辑:我意识到我需要将添加到包含着陆器代码的脚本标记中。然而,在添加这个并重

  • 我正在尝试用Typescript和ASP.NET内核设置Angular2。以下是package.json: 和tsconfig.json 和SystemJs.Config.js 和app.component.ts: 帮我想出解决办法。