我正在Firefox 3.03中的DIV元素上使用contentEditable属性。将其设置为true允许我按预期编辑DIV的文本内容。
然后,当我将contentEditable设置为“false”时,div也不再可编辑,也正如预期的那样。
然而,即使文本不再可编辑,闪烁的插入符号(文本输入光标)仍然可见。当我点击同一页面中的大多数其他文本时,即使在正常的文本段落中,插入符号现在也可见。
有没有人见过这个?有没有办法强制隐藏插入符号?
(当我调整浏览器大小或在另一个应用程序中单击并返回时,插入符会神奇地消失。)
答案 0 :(得分:6)
我已经解决了这个问题,当我禁用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属性,我的测试显示整体效果更好。我不记得这是否有助于修复插入符号问题,但为了以防万一,我将它放在这里。
答案 1 :(得分:0)
可以在Firefox中使用样式属性-moz-user-input
来使功能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。
答案 2 :(得分:0)
这解决了问题,看起来像firefox只是检查是自己做事的方式:P
getDoc().designMode = "off";