在InternetExplorer上,每次按Enter键时,contentEditable DIV都会创建一个新段落(<p></p>
),而Firefox会创建一个<br/>
标记。 是否有可能强制IE插入<br/>
而不是新的段落?避免即contentEditable元素在Enter键上创建段落
回答
是的,可以通过先停止keydown事件(window.event.stopPropagation();
)然后使用插入HTML command插入字符串来避免插入段落。
但是,IE依赖于这个divs来设置样式等,你将会遇到麻烦,使用<br> s。
我建议你使用像TinyMCE or other editors这样的项目,然后搜索一个按你喜欢的方式工作的编辑器,因为它们针对不同的浏览器问题提供了各种解决方法。也许你可以找到它使用<BR>秒的编辑器...
如果你可以使用它,FCKEditor有此
设置这里有一个解决方案(用了jQuery)。点击'更改为BR'按钮后,将插入<br>
标签,而不是<p></p>
标签。
HTML:
<div id='editable' contentEditable="true">
This is a division that is content editable. You can position the cursor
within the text, move the cursor with the arrow keys, and use the keyboard
to enter or delete text at the cursor position.
</div>
<button type="button" onclick='InsertBR()'>Change to BR</button>
<button type="button" onclick='ViewSource()'>View Div source</button>
的Javascript:
function InsertBR()
{
$("#editable").keypress(function(e) {
if (e.which == 13)
{
e.preventDefault();
document.selection.createRange().pasteHTML("<br/>")
}
});
}
function ViewSource()
{
var div = document.getElementById('editable');
alert('div.innerHTML = ' + div.innerHTML);
}
使用'insertNode()'而不是'pasteHTML()'为IE11 +和跨浏览器提到[这里](http://stackoverflow.com/questions/6690752/insert-html-at-caret-in-a- contenteditable -div/6691294#6691294) – 2015-10-21 00:33:00
你总是可以学会使用SHIFT + ENTER 为一行回报和ENTER段落的回报。 IE在这方面的行为与MS Word相似。
更改编辑<div>
作品里面<p>
的line-height
:
#editable_div p
{
line-height: 0px;
}
- 1. 为什么contentEditable元素拒绝Enter键?
- 2. Keydown事件在contenteditable段落
- 3. 如何避免在javadoc创建期间指定defaulAuthor元素
- 4. ContentEditable - 按Enter键生成P标签
- 5. 在UITextView中创建段落
- 6. 避免转换文本链接即CONTENTEDITABLE模式
- 7. 跨浏览器插入BR或P标签时按Enter在contentEditable元素上
- 8. 无法将创建的段落元素放入div中?
- 9. CSS段落元素问题
- 10. 格式化contentEditable元素,你键入
- 11. ng-pattern在contenteditable元素上可能吗?
- 12. 在contenteditable空间中创建新元素的jQuery/javascript手表
- 13. 避免在html元素中的ID
- 14. 避免在Delphi XE2下蒙皮元素
- 15. 如何避免按Enter键时选择文本框的值?
- 16. C++ getline ..我不能避免读取ENTER键
- 17. 避免创建空文件
- 18. 许多CONTENTEDITABLE元素
- 19. 使用xsl创建段落
- 20. 在对象中创建键时,我们如何避免?
- 21. 如何在使用vbscript创建XML元素时避免xmlns属性?
- 22. 避免当元素在“overflow:hidden”元素内时被截断
- 23. 避免在创建片段之前显示活动布局
- 24. jQuery和在按钮元素上使用Enter键而不是空格键
- 25. 避免在新行后创建textNode?
- 26. 避免在asp.net中创建ProfileCommon
- 27. 避免在datagrid中创建空行
- 28. 避免在输入手册页时在Vim中按'ENTER'键继续'
- 29. Sub nav落在网站上的元素
- 30. 如何避免dojo解析元素
这一战略突破撤消。每次按Enter键,您都会修改DOM,因此用户不能再使用“撤消”菜单撤销更改! – 2010-02-08 10:40:06
使用命令操作DOM不会破坏撤消。每个命令都可以撤消。当然,你必须避免像div.innerHTML =“foo”; – 2010-02-18 15:01:57