【问题标题】:Firefox 3.03 and contentEditableFirefox 3.03 和 contentEditable
【发布时间】:2008-10-18 07:44:37
【问题描述】:

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

然后,当我将 contentEditable 设置为“false”时,div 不再可编辑,这也是预期的。

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

有人见过这个吗?有没有办法强制隐藏插入符号?

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

【问题讨论】:

    标签: javascript firefox


    【解决方案1】:

    我已经解决了这个问题,我的解决方法是在禁用 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 属性的方式不一致,我的测试表明这总体上效果更好。我不记得这是否有助于解决插入符号问题,但我把它扔在这里以防万一。

    【讨论】:

    • 感谢您的提示。 removeAllRanges() 至少在将 conteEditable 设置为 false 后似乎隐藏了插入符号,更好一点。但是,如果我单击文本的其他位置,它会再次出现。删除属性本身似乎没有任何效果。可能是 Mozilla 可以在新版本中修复的问题。
    • 快速搜索 bugzilla 发现存在一个已知错误,即设置 contentEditable=false 会触发整个页面的插入符号模式。我删除该属性可能是我看不到此错误的一个原因。见:bugzilla.mozilla.org/show_bug.cgi?id=433692
    • 在 Firefox 16 中,这个错误仍然存​​在!删除属性没有帮助,但这个答案中的解决方法确实有帮助!谢谢!
    【解决方案2】:

    样式属性-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】:

      这解决了问题,看起来firefox只是在检查自己的制作方式:P

       getDoc().designMode  = "off";
      

      【讨论】:

        猜你喜欢
        • 2015-02-19
        • 2011-08-08
        • 2014-01-23
        • 2011-02-26
        • 2015-01-21
        • 1970-01-01
        • 2018-08-06
        • 2012-02-22
        • 1970-01-01
        相关资源
        最近更新 更多