Autor | Zpráva | ||
---|---|---|---|
Hobza Profil * |
#1 · Zasláno: 1. 7. 2010, 10:15:37
Vím že to tu bylo mockrát, ale ani jeden z již uvedených příkladů se mi nehodil.
Potřebuju: > Textarea do které bych stisknutím (odkazu, tlačítka) vložil část kódu. Nemusí to být nijak složité, ba naopak, čím jednoduší tím lepší. |
||
xmark Profil |
#2 · Zasláno: 1. 7. 2010, 10:25:10
Co třeba otevřít si zdroják téhle stránky a podívat se, jak fungují tlačítka?
|
||
Hobza Profil * |
#3 · Zasláno: 1. 7. 2010, 10:32:51
No, podle vseho se tag vlozi pomoci :
<a href="#" onclick="insertTag('b'); return false;"><img src="./img/button_bold.gif" width="23" height="22" title="Tučně (Ctrl + B)" alt="Tučně" border="0"></a> a javascript: function insertText(inserted, cursor) { try { // textarea může být neviditelná, to pak hází chybu, ale špatně se to testuje if(inserted != null) { inserted = inserted.toString().replace(/\r\n?/g, "\n"); if(typeof cursor == "undefined") cursor = inserted.length; } var textarea = document.forms["postMsg"].elements["poslText"]; if(textarea.readOnly) return; var scrollTop = textarea.scrollTop; var scrollHeight = textarea.scrollHeight; textarea.focus(); if(typeof textarea.selectionStart != "undefined") { var sel = [], st = textarea.value.substr(0, textarea.selectionStart).replace(/\r\n?/g, "\n"); sel[0] = Math.max(st.length + ((typeof cursor != "number") ? cursor[0] : cursor), 0); st += (inserted != null) ? inserted + textarea.value.substr(textarea.selectionEnd).replace(/\r\n?/g, "\n") : textarea.value.substr(textarea.selectionStart).replace(/\r\n?/g, "\n"); sel[1] = Math.min(sel[0] + ((typeof cursor != "number") ? cursor[1] : 0), st.length); if(window.opera) { // Opera převádí \n na \r\n, kurzor by se netrefil. for(var i = 0; i < 2; i++) { var p = st.substr(0, sel[i]); sel[i] += p.length - p.replace(/\n/g, "").length; } } if(inserted != null) textarea.value = st; textarea.selectionStart = sel[0]; textarea.selectionEnd = sel[1]; } else if(typeof document.selection != "undefined") { var range = document.selection.createRange(); var start = 0, end = 0; if(inserted != null) { start = end = -inserted.length; range.text = inserted; } else { end = -range.text.replace(/\r\n?/g, "\n").length; } // nastavení kurzoru na spravné místo / vybrání požadovaného textu if(typeof cursor != "number") { range.moveStart("character", start + cursor[0]); range.moveEnd("character", end + cursor[0] + cursor[1]); } else { if(start + cursor) range.move("character", start + cursor); } range.select(); } } catch(exc) {}; if(window.netscape) { textarea.scrollTop = scrollTop + (textarea.scrollHeight - scrollHeight); } } Nic jednodušího a lépe pochopitelného pro začátek by se nenašlo? JavaScript vůbec neumím.... |
||
Hobza Profil * |
#4 · Zasláno: 1. 7. 2010, 10:34:11
To aby se to vložilo okolo textu a podobné opičky vůbec nepotřebuju, stačí pouhopouhé vložení mnou určeného textu... (ne tagů)
|
||
Chamurappi Profil |
#5 · Zasláno: 1. 7. 2010, 11:05:12
Reaguji na Hobzu:
document.jménoFormuláře.jménoTextarey.value += "vložený text"; |
||
Hobza Profil * |
#6 · Zasláno: 1. 7. 2010, 12:38:36
A to mám dát jako funkci insertTag, nebo jako
<a href="#" onclick="document.jménoFormuláře.jménoTextarey.value += "vložený text";"><img src="./img/button_bold.gif" width="23" height="22" title="Tučně (Ctrl + B)" alt="Tučně" border="0"></a> |
||
mckay Profil |
#7 · Zasláno: 1. 7. 2010, 12:54:30
Hobza:
Zkus si přečíst tohle vlákno. V označeném příspěvku to Chamurappi (jen tak mimochodem, mému bratrovi) vysvětluje. |
||
Chamurappi Profil |
#8 · Zasláno: 1. 7. 2010, 13:02:29
Reaguji na Hobzu:
Je to celkem jedno. Ale kód, který jsi napsal, nepojede, protože máš špatně uvozovky uvnitř hodnoty atributu — atribut onclick ti skončí hned za += . Použij apostrofy.
Za jménoFormuláře dosaď jméno formuláře (tedy to, co máš v atributu name na elementu <form> ).
Za jménoTextarey dosaď jméno textového pole (tedy to, co máš v atributu name na elementu <textarea> ).
Reaguji na mckaye: Píše, že nepotřebuje stejné schopnosti, jaké má zdejší <textarea> .
|
||
Hobza Profil * |
#9 · Zasláno: 1. 7. 2010, 13:06:44
Díky, našel jsem si tam odkaz na http://www.volny.cz/peter.mlich/jpw/#formulare, zde jsem si našel, co jsem potřeboval...
|
||
Chamurappi Profil |
#10 · Zasláno: 1. 7. 2010, 13:13:26
Reaguji na Hobzu:
To, co jsi potřeboval, jsem napsal v příspěvku [#5]. Odkázaný web je napůl vykradený z JPW a napůl vlastní iniciativa nepříliš spolehlivého brouka pytlíka, jehož radám se zpravidla nevyplácí věřit, přestože v případě té <textarey> mu to funguje.
|
||
Hobza Profil * |
#11 · Zasláno: 1. 7. 2010, 15:06:18
<script> function vlozText(text,blok) { text += (blok ? '\n' : ' '); // prida k textu zalomeni radku nebo mezeru document.formular.policko.value += text; // prida na konec textarea document.formular.policko.focus(); // premisti kurzor do textoveho policka } </script> Omlouvám se že ještě otravuju, ale výše uvedený kód mi hodí ukazatel do textarea před mnou vložený text, nevíte (víte :-D) co zde mám upravit tak, aby mi to ukazatel hodilo za mnou vložený text? |
||
Časová prodleva: 14 let
|
0