Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Замена выделенного кода. (https://javascript.ru/forum/misc/2067-zamena-vydelennogo-koda.html)

alexKniaz 28.10.2008 00:23

Замена выделенного кода.
 
Собираюсь себе на сайт поставить WISGYS-панель на форум. Ну, с тем как сделать, чтобы в диве тест набирать можно было, разобрался, в bb коды форматнуть тоже смогу.
Но как сделать, чтобы можно было узнать выделенный html-не знаю, кроме как под IE, а как его изменить - тем более.
В инете доступных для моего уровня заний JS материалов не нашёл...
Может кто-либо знает???желательно объяснить, что и почему.

Kos 28.10.2008 14:18

function replaceSelectedText(obj, S) {
					obj.focus();
					
					if (document.selection) {
						var oSel = document.selection.createRange(); 
						
						if (oSel.text) {
							switch(S) {
								case "URL":
									var url = prompt("Введите URL:", "http://www.")
									if (url) oSel.text = "[URL=" + url + "]" + oSel.text + "[/URL]";
									break;
								default:
									oSel.text = "[" + S + "]" + oSel.text + "[/" + S + "]";
									break;
							}
						}
					} else if (typeof(obj.selectionStart) == "number") {
						if (obj.selectionStart != obj.selectionEnd) {
							var start = obj.selectionStart;
							var end = obj.selectionEnd;
							
							switch(S) {
								case "URL":
									var url = prompt("Введите URL:", "http://www.")
									if (url) obj.value = obj.value.substr(0, start) + "[URL=" + url + "]" + obj.value.substr(start, end - start) + "[/URL]" + obj.value.substr(end);
									break;
								default:
									obj.value = obj.value.substr(0, start) + "[" + S + "]" + obj.value.substr(start, end - start) + "[/" + S + "]" +obj.value.substr(end);
									break;
							}
						}
					}
				}


Для URL
<a href="javascript:replaceSelectedText(<элемен т, в котором происходит замена>, 'URL')">URL</a>

Для всего остального
<a href="javascript:replaceSelectedText(<элемен т, в котором происходит замена>, '<bbcode>')"><bbcode></a>

* Вместо <элемент, в котором происходит замена> и <bbcode> подставляешь свои значения

alexKniaz 28.10.2008 15:16

Такой код не пашет. Нашёл, то что надо widgEditor. Осталось переписать чуть-чуть.

Kos 28.10.2008 15:42

Где именно?
У меня все пашет

alexKniaz 28.10.2008 17:56

Не заменяет текст.
Трабл, видимо в дом, что код под textarea, а у меня - пытается с редактируемым дивом работать
Да,ну его, наверное... Нашёл, то что мне надо...


Часовой пояс GMT +3, время: 12:03.