【问题标题】:not well-formed in mozilla在 Mozilla 中格式不正确
【发布时间】:2016-03-05 20:37:11
【问题描述】:

我在我的文档就绪函数中使用点击监听器。每个点击监听器都有一个冗长的代码。为方便起见,我创建了一个单独的 java 脚本文件并将单击侦听器放置在该文件中,并在我准备好的文档中加载了该脚本。现在 Mozilla 给了我这个错误

格式不正确

这是我正在使用的确切代码

// ChangePasswordProcess.js File

$("#changePasswordButton").click(function (){
  if($("#newPassword").val() != $("#confirmNewPassword").val()){
      alert('Your new password did not matched');
      return false;
  }else if($("#newPassword").val() == '' || $("#confirmNewPassword").val() == ''){
      alert('Please enter new password');
      return false;
  }else{
      alert('Password changed successfully');
  }
});

这是我在准备好的文档中加载 java 脚本文件的方式

 $(document).ready(function (){
   $(function () {
  $.getScript('js/ChangePasswordProcess.js');
  });
});

实际上,我想通过在不同的 java 脚本文件中划分其代码来保持文档就绪文件非常简单和简短。如果有人可以为此提供任何替代解决方案?

【问题讨论】:

  • “格式不正确”错误指向什么?应该提供比这更多的信息。另请注意,您不需要像在第二个代码 sn-p 中那样嵌套 document.ready 处理程序。
  • 我怀疑路径错误,并且您正在返回一些 html。在浏览器开发工具网络中检查实际请求本身并查看响应正文包含什么
  • 实际上功能工作正常,但我担心控制台警告。根据 Rory McCrossan,我认为我需要处理我单击文档准备好的事件,这就是我将它嵌套在文档准备好的原因
  • 这就是您在ChangePasswordProcess.js 文件中发布的问题中的全部内容吗?
  • 是的,这一切都在我的ChangePasswordProcess.js

标签: javascript jquery document-ready


【解决方案1】:

这似乎是 Mozilla 中的一个错误,它将“content-type”报告为“application/xml”,用于通过 XMLHttpRequests 从本地磁盘使用file:// 协议检索到的文件。错误“not well-formed”表示javascript内容不是XML,但脚本的运行支持FireFox成功恢复的观点。我的猜测是和Bug 409230是同一个问题

确认错误行为来自通过http:// 使用在localhost 上运行的Node/Express 服务器提供相同页面和javascript 文件时错误消失。 Node/express 正确地将 javascript 文件的内容报告为“application/javascript”,并且没有错误消息。

测试 HTML(带有简化的准备功能):

<!DOCTYPE html><html><head><title>Not well-formed</title>
<meta charset="utf-8">
<script src="lib/jquery-2.2.1.js"></script>
<script>
 $(document).ready(function (){
      $.getScript('js/ChangePasswordProcess.js'); 
 });
</script>
</head><body>
password: <input id="newPassword" type="text"><br>
confirm: <input id="confirmNewPassword" type="text"><br>
<button type="button" id="changePasswordButton">change</button>
</body></html>

脚本 在未缩小的jquery-2.2.1.js file 中,在第 8114 行附近,添加

console.log("content-type: " + jqXHR.getResponseHeader( "Content-Type" ));

报告响应内容类型。 js/ChangePasswordProcess.js 文件与 OP 保持一致。

【讨论】:

    猜你喜欢
    • 2014-08-08
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 2015-08-29
    • 2012-02-15
    • 2019-04-29
    相关资源
    最近更新 更多