【问题标题】:jQuery call to find function gives a “not well-formed” error in Firefox对查找函数的 jQuery 调用在 Firefox 中给出了“格式不正确”的错误
【发布时间】:2015-07-15 17:37:48
【问题描述】:

我正在从 XML 文件中检索数据,然后使用 jQuery .find() 函数来访问该数据。但是在 Firefox(版本 37.0.2)中,我在 JavaScript 控制台中收到以下错误:

Error: Unable to run script because scripts are blocked internally.
Error: not well-formed
Source Code:
<datarecord><div><a id='sizzle1430853521804'></a><select id='sizzle1430853521804- ]' msallowcapture=''><option selected=''></option></select></

一切仍然正常,但有谁知道我怎样才能摆脱这个错误,或者它是 Firefox 中的一个错误?

这是我的代码:

$.ajax({
  url:"file.xml", 
  type:"GET", 
  dataType:"xml", 
  success:function(xml){
    $(xml).find("field_id").each(function(){
      // my code...
    }
  }
});

XML 文件的格式如下,我使用了 XML 验证器来确保它正常:

<?xml version="1.0" encoding="utf-8"?>
<datarecord>
<field_id><TheIdValue>8</TheIdValue><TheDisplayValue>Joe Bloggs</TheDisplayValue></field_id>
etc...
</datarecord>

我无法找到解决方案。有什么建议吗?

【问题讨论】:

标签: jquery ajax xml firefox find


【解决方案1】:

我不能肯定它会解决您的问题,但我在 Firefox 中遇到了类似的“格式不正确”消息。原来 jQuery 1.11.2 和 1.11.3 中存在一个错误 - https://github.com/jquery/jquery/issues/1969 - 在上游已修复。

如果您在服务器上托管 jquery,这是一个相对较小的变化 - 请参阅 github commit

在 jquery.1.11.3.js 行 cca 1197(在QSA/matchesSelector 部分):

 -              "<select id='" + expando + "-\f]' msallowcapture=''>" +
 +              "<select id='" + expando + "-\r\\' msallowcapture=''>" +

希望很快会有新版本。

【讨论】:

  • 谢谢,我做了这个改变,它修复了这个错误!该错误实际上似乎并没有阻止我的代码工作,但很好地修复了它。
猜你喜欢
  • 2020-02-12
  • 2015-05-28
  • 2011-07-21
  • 2016-04-08
  • 2012-04-17
  • 2015-05-26
  • 2013-08-08
  • 2013-12-04
  • 1970-01-01
相关资源
最近更新 更多