На InternetExplorer contentEditable DIV создает новый абзац (<p></p>
) каждый раз Вы нажимаете Enter, тогда как Firefox создает a <br/>
тег. Действительно ли возможно вынудить IE вставить a <br/>
вместо нового абзаца?
Да, можно избежать вставки параграфов, сначала остановив событие клавиатуры (window.event.stopPropagation();
), а затем вставив строку с помощью вставки HTML команды.
Однако, IE зависит от этого divs для установки стилей и т.д., и вы столкнетесь с проблемами при использовании
s.
Я предлагаю вам использовать проект типа TinyMCE или другие редакторы и искать редактор, который будет вести себя так, как вам хотелось бы, так как у них есть всевозможные обходные пути для различных проблем с браузером. Возможно, вы сможете найти редактор, использующий
s....
Если вы используете Java 5 или выше, используйте AtomicBoolean
-121--1235553- В целом, вы хороши, поскольку House
создает переменную-член m _ room
сама по себе Это соответствует образцу, который используется предметом сразу после создания экземпляра (он не требует специальных действий, таких как установка комнаты или чего-либо еще).
У меня есть некоторые незначительные подборы nit:
class Room
{
public:
// virtual method to allow overriding
virtual void ColorRoom(){};
};
class House
{
public:
// Returning a non-const pointer in C++ is typically a bad smell.
const Room& Room() const { return m_room; }
// Allow for assignment and manipulating room, but breaks const-ness
Room& Room() { return m_room; }
// Facade method for houses with more than one room
// You can forward parameters or come up with room-painting schemes, but you should
// not require that a House has a Room called Room().
virtual void ColorAllRooms()
{
m_room.ColorRoom();
}
private:
Room m_room;
};
-121--4167091- Если вы можете его использовать, FCKEditor имеет настройки для этого
вот решение (использует jQuery). После того, как вы нажмете кнопку «Изменить в BR», тег P>
будет вставлен вместо 4
.
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);
}
Эти ссылки помогали . Рабочий пример здесь .
Вы всегда можете научиться использовать SHIFT + ENTER для возвратов в одной строке и ENTER для возвратов параграфов. В этом отношении IE ведет себя как MS Word.