代码之家  ›  专栏  ›  技术社区  ›  Ash

Firefox 3.03和ContentEditable

  •  3
  • Ash  · 技术社区  · 16 年前

    我在firefox 3.03的一个div元素上使用contenteditable属性。将其设置为true允许我按预期编辑DIV的文本内容。

    然后,当我将contenteditable设置为“false”时,DIV将不再是可编辑的,正如预期的那样。

    但是,即使文本不再可编辑,闪烁的插入符号(文本输入光标)仍然可见。当我单击同一页中的大多数其他文本时,插入符号现在也可见,即使在普通文本段落中也是如此。

    以前有人见过这个吗?是否有任何方法强制隐藏插入符号?

    (当我调整浏览器的大小或在另一个应用程序中单击,然后返回时,插入符号会神奇地消失。)

    3 回复  |  直到 11 年前
        1
  •  6
  •   Borgar    16 年前

    我已经处理过这个问题,我的解决方法是在禁用ContentEditable时清除选择:

    if ($.browser.mozilla) { // replace with browser detection of your choice
      window.getSelection().removeAllRanges();
    }
    

    我实际上正在删除浏览器(而不是IE)的“contentEditable”属性,而不是将其设置为false:

    if ($.browser.msie) {
      element.contentEditable = false;
    }
    else {
      $(element).removeAttr( 'contenteditable' );
    }
    

    浏览器对ContentEditable属性的管理不一致,我的测试表明这总体上效果更好。我不记得这是否有助于解决插入符号的问题,但我把它扔在这里以防万一。

        2
  •  0
  •   stealthyninja michkra    13 年前

    样式属性 -moz-user-input 可以在firefox中使用以获取功能 contenteditable=false 工作。
    分配的值定义是否接受用户输入。可能的值是

    none     : The element does not respond to user input.
    enabled  : The element can accepts user input. This is default.
    disabled : The element does not accept user input.
    

    例如。:

    // to disallow users to enter input
    <asp:TextBox ID="uxFromDate" runat="server" style="-moz-user-input: disabled;"></asp:TextBox>
    
    // to allow users to enter input
    <asp:TextBox ID="uxFromDate" runat="server" style="-moz-user-input: enabled ;"></asp:TextBox>
    

    参照 https://developer.mozilla.org/en/CSS/-moz-user-input 供进一步参考。

        3
  •  0
  •   Gustavo    11 年前

    这就解决了Ploblem问题,看起来火狐只是在检查自己的制造方法:p

     getDoc().designMode  = "off";