2016-02-11 2 views
1

У меня есть div с contenteditable. Я могу вставить любой текст или изображение, а затем удалить его или перемещаться по нему. Как я могу получить абзац с элементом audio, который будет работать так же?Как сделать съемный аудиоэлемент в contenteditable div?

<div contenteditable="true"> 
 
    <p> 
 
    Hello 
 
    </p> 
 
    <p> 
 
    <img src="http://vignette4.wikia.nocookie.net/mrmen/images/5/52/Small.gif/revision/latest?cb=20100731114437"/> 
 
    </p> 
 
    <p> 
 
    <audio controls> 
 
     <source src="http://freewavesamples.com/files/Yamaha-TG100-Whistle-C5.wav"/> 
 
    </audio> 
 
    </p> 
 
</div>

В примере, вы не можете переместить курсор за последним p элемента, вы не можете удалить его с любым ключом.

+0

Это правда, что невозможно переместить курсор после последнего элемента p, но я могу отменить его после удаления всех остальных элементов. – fbid

+0

Я тоже могу удалить аудио-элемент, но когда цель чистая –

+0

Таким образом, это действительно так, но это не очень хорошо. – Danio

ответ

1

я нашел решение. Это похоже на ответ Маркоса Переса Гуда, но пространство должно быть в пределах p элемента, и должен быть один на передней панели, если элемент audio является первым в div.

<div contenteditable="true"> 
 
    <p> 
 
    Hello 
 
    </p> 
 
    <p> 
 
    <img src="http://vignette4.wikia.nocookie.net/mrmen/images/5/52/Small.gif/revision/latest?cb=20100731114437"/> 
 
    </p> 
 
    <p> 
 
    &nbsp; 
 
    <audio controls> 
 
     <source src="http://freewavesamples.com/files/Yamaha-TG100-Whistle-C5.wav"/> 
 
    </audio> 
 
    &nbsp; 
 
    </p> 
 
    
 
</div>

Единственное ограничение в том, что он будет тормозить, если вы удалите пространство во время редактирования.

1

Если поставить пробел после </p> пользователь может поместить каретку после звукового элемента

<div contenteditable="true"> 
 
    <p> 
 
    Hello 
 
    </p> 
 
    <p> 
 
    <img src="http://vignette4.wikia.nocookie.net/mrmen/images/5/52/Small.gif/revision/latest?cb=20100731114437"/> 
 
    </p> 
 
    <p> 
 
    <audio controls> 
 
     <source src="http://freewavesamples.com/files/Yamaha-TG100-Whistle-C5.wav"/> 
 
    </audio> 
 
    </p> 
 
    &nbsp; 
 
</div>

+0

Тогда, например. Я не могу добавить текст в одну строку (я хочу такую ​​же гибкость, как с изображениями и т. Д.) – Danio

+0

Поэтому я могу предложить вам сделать это с помощью редактора WYSIWYG, а не с атрибутом 'contenteditable'. Очень хорошо wysiwyg - http://ckeditor.com/. Вы можете поместить его в строку, без элементов управления, и результат будет таким же. Вы не можете сделать контент таким же образом на изображениях и в аудиокомпоненте, потому что аудиокомпонент имеет события для управления самим звуком, но изображения не –

Смежные вопросы