избегайте т.е. contentEditable элемент для создания абзацев на клавише Enter

На InternetExplorer contentEditable DIV создает новый абзац (<p></p>) каждый раз Вы нажимаете Enter, тогда как Firefox создает a <br/> тег. Действительно ли возможно вынудить IE вставить a <br/> вместо нового абзаца?

10
задан Franck Freiburger 13 January 2010 в 15:36
поделиться

4 ответа

Да, можно избежать вставки параграфов, сначала остановив событие клавиатуры (window.event.stopPropagation();), а затем вставив строку с помощью вставки HTML команды.

Однако, IE зависит от этого divs для установки стилей и т.д., и вы столкнетесь с проблемами при использовании
s.

Я предлагаю вам использовать проект типа TinyMCE или другие редакторы и искать редактор, который будет вести себя так, как вам хотелось бы, так как у них есть всевозможные обходные пути для различных проблем с браузером. Возможно, вы сможете найти редактор, использующий
s....

7
ответ дан 3 December 2019 в 19:33
поделиться

Если вы используете 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 имеет настройки для этого

1
ответ дан 3 December 2019 в 19:33
поделиться

вот решение (использует jQuery). После того, как вы нажмете кнопку «Изменить в BR», тег
будет вставлен вместо 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);
}

Эти ссылки помогали . Рабочий пример здесь .

6
ответ дан 3 December 2019 в 19:33
поделиться

Вы всегда можете научиться использовать SHIFT + ENTER для возвратов в одной строке и ENTER для возвратов параграфов. В этом отношении IE ведет себя как MS Word.

5
ответ дан 3 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: