| Июль 2008 | ||||||
| ПН | ВТ | СР | ЧТ | ПТ | СБ | ВС |
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||
Как расширить диалоговые окна вставки изображения или ссылки, чтобы получить значения для других атрибутов тегов "img" и "а" от пользователя?
Как создать диалоговое окно для произвольного тега, наподобие диалоговых окон для вставки изображения или ссылки?
Существует функция eDefTagDialog(tag, fields, dtitle, stitle, func) в стандартной библиотеке кнопок для создания диалогового окна для любого тега.
Вот пример простейшего использования:
eDefTagDialog('div', ['id', 'class', 'style']);Этот код создаст диалог "DIV Tag Dialog" ("Диалоговое окно для тега DIV"), запрашивающего атрибуты "id", "class", "style". Этот код также позволит обнаружить, если был выделен корректный тег DIV, и если да, значения атрибутов появятся в соответствующих полях. После отправки данных, код обрамит/заменит выбранный текст в текстовом поле.
Вы могли заметить, что поля в диалоговых окнах вставки ссылки/изображения определены как объекты, а не как строки. Это специальная форма определения атрибутов. Определение полей как объектов идеально подходит, если вы хотите:
Поле должен иметь свойство "name", которое определяет название атрибута. {name: 'href'}
Теперь, давайте добавим поле для атрибута "align" в диалоговое окно вставки изображения (заметьте, что это не совместимо с XHTML):
Объект поля, который нужно передать к eDefTagDialog, выглядит так:
{
name: 'align',//required //обязательно
title: 'Image align', // if we dont set it, it will be set as 'Align' automatically. // если мы не определим это, название будет автоматически установлено в 'Align'.
type: 'select', // we use a selectbox instead of a plain textfield. // мы используем selectbox вместо простого textfield.
options: {'': '', left: 'Left', right: 'Right', center: 'Center'} // set options in the form-> {attribute-value: 'Visible value'} //установим варианты -> {attribute-value: 'Visible value'}
}Теперь добавим его в форму, в свойстве "СОДЕРЖАНИЕ" ("CONTENT") кнопки вставки изображения:
var form = [
{name: 'src', title: 'Image URL'},
{name: 'width', title: 'Width x Height', suffix: ' x ', getnext: true, attributes: {size: 3}},
{name: 'height', attributes: {size: 3}},
{name: 'alt', title: 'Alternative text'},
{name: 'align', title: 'Image align', type: 'select', options: {'': '', left: 'Left', right: 'Right', center: 'Center'}}
];
eDefTagDialog('img', form, 'Insert/edit image', 'OK');Вот и все. Теперь у нас есть диалоговое окно вставки изображения, которое позволяет получить/установить атрибут "align" тега img.
Помимо теговых диалогов, как создать кнопку, которая берёт вводимые пользователем данные, и добавляет их в текстовое поле?
Свойство "СОДЕРЖАНИЕ" ("CONTENT") кнопки должно быть примерно таким:
js:
// function that inserts the user input from the form into the textarea. this might be defined outside as well.
myUserInput = function(form) {
E.replaceSelection('User input is: '+ form.elements["user_input"].value);
editor.dialog.close();//close the dialog when done.
}
//form html. we define an input field named as "user_input".
var html = 'Input : '+ eDefInputText('user_input');
html += eDefInputSubmit('sbmt', 'Submit');
html = eDefHTML('form', html, {onsubmit: 'myUserInput(this); return false;'});//run getUserInput on submission
//open editor dialog with a title and the user form.
editor.dialog.open('User Input', html);Приведённый выше пример использует форму, которая в большей степени подходит для сложных данных, вводимых пользователем. Если вы хотите получить только единичный ввод, вы можете использовать javascript-код prompt(). Вот пример, который получает URL изображения от пользователя:
js:
var url = prompt('URL', '');//prompt for URL
var code = '<img src="'+ url +'" />';//put the url into the code.
E.replaceSelection(code);//replace the selection with the code.Как создать кнопку, чтобы получить XHTML-совместимый код для подчеркнутого текста?
Так как тег <u> не совместим с XHTML, вы должны использовать CSS. Прежде всего, вам нужно определить класс в CSS-файле вашей темы, например;
.underlined-text {text-decoration: underline;}Если ваш класс существует (как показано в примере выше), вы можете использовать его в свойстве "СОДЕРЖАНИЕ" ("CONTENT") вашей кнопки:
<span class="underlined-text">%TEXT%</span>Где %TEXT% будет заменён на выделенный в текстовом поле текст.
Источник:
Последние комментарии
1 неделя 2 дня назад
1 неделя 4 дня назад
1 неделя 4 дня назад
1 неделя 6 дней назад
2 недели 1 день назад
2 недели 3 дня назад
3 недели 1 день назад
3 недели 2 дня назад
3 недели 5 дней назад
3 недели 5 дней назад