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

仅在Firefox中存在JQuery AJAX异常:“无法在层次结构中的指定点插入节点”(HierarchyRequestError)

公羊俊德
2023-03-14
问题内容

一个非常奇怪的问题:我有一个分为两部分的下拉菜单,其中选择一个州将添加第二个下拉菜单,为您提供该州的MSA区域列表。

使用对控制器的JQuery Get请求来完成此操作,该控制器返回Select下拉列表中的Areas列表,例如

jQuery(function($) {
  // when the #area_state field changes
  $("#area_state").change(
    function() {
      // make a call and replace the content
      var state = $('select#area_state :selected').val();
      if(state == "") state="0";
      jQuery.get(
        '/getmsas/' + state,
        function(data){ $("#msas").html(data); }
      )
    return false;
    }
  );
})

注意-此代码改编自此处的教程:http : //www.petermac.com/rails-3-jquery-and-multi-select-
dependencies/

这在Chrome和IE上可以正常工作,但在Firefox(13.0.1)中却无法正常工作,从而产生两个错误:

Error: junk after document element
Source File: http://localhost:3000/getmsas/Connecticut
Line: 2, Column: 1
Source Code:
<select id="area_msa" name="area[msa]"><option value="">Select Area (Optional)</option>

Error: uncaught exception: [Exception... "Node cannot be inserted at the specified point
in the hierarchy"  code: "3" nsresult: "0x80530003 (HierarchyRequestError)"  location:   
"http://localhost:3000/assets/jquery.js?body=1 Line: 6498"]

问题答案:

因此,我强行提出了一个解决方案。我还不太了解为什么这个问题是特定于Firefox的,但是可以对其进行调查。

我能够通过为dataType(get方法的最后一个参数)添加一个参数来显式地将其声明为html来解决此问题。

Get在此处的JQuery文档中进行了描述:http :
//api.jquery.com/jQuery.get/

jQuery.get( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )

因此,有效的代码是通过添加“ html”作为dataType参数:

jQuery(function($) {
  // when the #area_state field changes
  $("#area_state").change(
    function() {
      // make a call and replace the content
      var state = $('select#area_state :selected').val();
      if(state == "") state="0";
      jQuery.get(
        '/getmsas/' + state,
        function(data){ $("#msas").html(data); },
        "html"
        // ABOVE LINE IS THE FIX
      )
    return false;
    }
  );
})

同样,我需要调查为什么这是特定于Firefox的;这让我发疯,所以希望它可以帮助某人。



 类似资料:
  • 问题内容: 因此,我尝试将外部文件中的纯文本加载到页面中,并且标题中始终出现错误。我究竟做错了什么?(我完全按照教程学习!)谢谢。 的HTML jQuery查询 编辑:显然没有成功。不知道为什么,文件就在它旁边。 问题答案: 尝试指定一个dataType:

  • 问题内容: 我有一个存储在典型MySQL数据库中的表,并且已经使用java构建了一个小型解析器工具,以解析并构建neo4j数据库。该数据库将具有约4000万个节点,每个节点具有一个或多个边缘(最多可能有10个边缘)。问题来自我必须创建某些节点的方式。有一个用户节点,评论节点和标签节点。用户节点和主题标签节点必须各自唯一。我正在使用以下示例中的代码来确保唯一性: } 我已经考虑过使用批处理插入器,但

  • 本文向大家介绍在Javascript AVL树中插入节点,包括了在Javascript AVL树中插入节点的使用技巧和注意事项,需要的朋友参考一下 我们可以学习如何在AVL树中插入节点。AVL树中的插入与BST相同,只要我们在树上向下移动,我们只需在插入过程中执行一个额外的步骤,称为平衡树。 这需要计算我们之前已经看到的平衡因子。并且根据配置,我们需要调用适当的旋转方法。在以上说明的帮助下,这些都

  • 下面的代码是正确的,但我不明白为什么两行代码可以工作。我指的是最后一块。具体地说,我指的是这两行: newword->next=hashtable[index]; hashtable[index]=newword; 如果目标是在哈希表的索引处将节点追加到链表,那么为什么newword->next指向哈希表的索引,而该索引处可能已经有节点了。我认为它应该是newword->next=NULL,因为该

  • 我在做一个程序,没有使用Java的内置链表类;我在从头开始做。除了编写一个将节点插入链表的特定位置的方法外,我在所有方面都取得了成功。 我有一个方法将一个特定的节点设置为“当前”节点。所以,例如,我有一个链表,看起来是这样的:猫-->狗-->使-->好-->宠物,“当前”等于2;这意味着“当前”节点是“狗”。 从这里开始,假设我想在“current”的位置插入一个新节点,它的info字段为AND。

  • 问题内容: 您认为可以在异常内使用错误代码来指定错误类型吗?请看下面的代码: 我知道在此示例中使用枚举而不是字符串会更好,但是我实际上担心错误代码的概念。您认为在这里异常层次结构会更好吗?我找不到任何权威来源指出异常中的错误代码是反模式的。谢谢。 问题答案: 如果您想根据导致异常(无效名称或无效ID)的原因做出不同的响应(在代码中),那么我建议您使用不同的异常。 如果不是,那么您甚至不需要该方法,