Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: div contenteditable=true проблема с выделением и onclick
 
 автор: Красная_шляпа   (15.02.2012 в 12:35)   письмо автору
 
 

Есть два примера:

1. http://pastehtml.com/view/bo7ig3514.html

Если выделить текст и нажать на кнопку "Bold" то он станет жирным.

2. http://pastehtml.com/view/bo7i27qmw.html

Вместо тега button используется span при клике по нему да включается режим отображения текста жирным, но если выделить текст и кликнуть с выделенной областью ничего не произойдёт. Как решить эту проблему?

  Ответить  
 
 автор: ЯСА   (15.02.2012 в 13:03)   письмо автору
 
   для: Красная_шляпа   (15.02.2012 в 12:35)
 

Кто вам оба этих кода писал? Ключница?
Кошмар и ужас!

Держите код, очищенный от ненужного (и) маразма, и, в отличие от ваших, работающий в FireFox:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset="utf-8" />
<style>
            body { font: 14px Tahoma; }  
            
            .editor {
                border: solid 1px #ebebeb;
                min-height: 1em;
                padding: 4px 7px;
            }

</style>

<script>  
               
            function setFormat (command, value) {
                document.getElementById ('content').focus ();
                document.execCommand (command, false, value);
            }
            
            function setBold () {
                setFormat ('bold', '');
            }
            
            function setItalic () {
                setFormat ('italic', '');
            }
            
            function setUnderline () {
                setFormat ('underline', '');
            }
            
</script>
</head>
<body>
<p><button onclick="setBold ()"     >Bold</button>      or <span onmousedown="setBold ()"     >Bold</span></p>
<p><button onclick="setItalic ()"   >Italic</button>    or <span onmousedown="setItalic ()"   >Italic</span></p>
<p><button onclick="setUnderline ()">Underline</button> or <span onmousedown="setUnderline ()">Underline</span></p>

<div class="editor" id="content" contenteditable="true"><p>Sample text.</p></div>
</body>
</html>

  Ответить  
 
 автор: Красная_шляпа   (15.02.2012 в 13:11)   письмо автору
 
   для: ЯСА   (15.02.2012 в 13:03)
 

это дело вкуса, но теперь выделение работает, а форматирование нет если на кнопку нажали режим жирного не включается mousedown и focus должен быть именно второй строчкой. C батонами и имейджами все работает, но мне нужно с дивами, дивы у меня будут кнопками(background-image) мне не понятно что происходит при клике по диву и почему по-разному обрабатывается нежели батон или имейдж

  Ответить  
 
 автор: ЯСА   (15.02.2012 в 13:57)   письмо автору
 
   для: Красная_шляпа   (15.02.2012 в 13:11)
 

Это не "дело вкуса".
Это - "дело соблюдения стандартов языка" и "дело работоспособности кода"

Ваших сумбурных претензий/требований, увы, НЕ ПОНЯЛ!

Какие-такие "имейджи"?
Какое "форматирование" не работает? Что вы под этим словом понимаете?

Что значит "дивы будут кнопками"? Я не спрашиваю - "зачем?" (это дело ваше), но мне интересно - когда дивы станут кнопками? После какого события? После конца света? И кем станете вы после этого события? :-)

Хотите получить помощь - объясняйтесь доступным языком.
Чтобы ваше объяснение содержало ответы на вопросы ЧТО? ГДЕ? КОГДА?

  Ответить  
 
 автор: Красная_шляпа   (15.02.2012 в 14:03)   письмо автору
 
   для: ЯСА   (15.02.2012 в 13:57)
 

e.g.
<div style="display: inline-block; width: 24px; height: 24px; background-image: url(images/bold.png);" onclick="javascript: setBold();"></div>

при onclick в отличии от button не устанавливается стиль для выбранного фрагмента, но в режим жирного переключается

  Ответить  
 
 автор: Красная_шляпа   (15.02.2012 в 20:47)   письмо автору
 
   для: Красная_шляпа   (15.02.2012 в 12:35)
 

/тему можно закрыть

<div unselectable="on" onclick="setBold()" ...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования