Autor | Zpráva | ||
---|---|---|---|
jonge Profil |
#1 · Zasláno: 20. 2. 2007, 14:46:10 · Upravil/a: jonge
Začínám s JavaScriptem a chtěl bych si o něco vylepšit přidávání smajlíků do textarea a to tak, že smajlík se vloží na to místo, kde je kurzor. Pomůžete mi někdo? Děkuji
EDIT: Mimochodem, tady je můj současný skript: function vlozSmajla(textarea, text) { |
||
Hooonza Profil * |
#2 · Zasláno: 20. 2. 2007, 15:02:51
Jestli budeš používat BB-kód, můžeš využít toto (upravené s ohledem na podporu v různých prohlížečích):
--- Skript: --- <script type="text/javascript"> <!-- function showsmile(happy) { smiledone = false; G = document.formular.body; if ((navigator.appName=='Microsoft Internet Explorer')&&(!window.opera)) { if((document.selection)&&(G.value.indexOf(document.selection.createRa nge().text)>-1)) { G.focus (); if (!document.selection.createRange().text) { document.selection.createRange().text = ' '+happy+' '; smiledone = true; };};} else { var selLength = G.textLength; var selStart = G.selectionStart; var selEnd = G.selectionEnd; var s1 = (G.value).substring(0,selStart); var s2 = (G.value).substring(selStart, selEnd); var s3 = (G.value).substring(selEnd, selLength); if (s2=='') G.value = s1 + ' '+happy+' ' + s3; if (s2=='') smiledone=true; }; if (!smiledone) G.value += ' '+happy+' '; G.focus(); }; //--> </script> ----------------------- V blízkosti textarey umístíš obrázky smajlíků s událostí onclick, na kliknutí se do textarey "name=body" formuláře "name=formular" vypíše zastupující znak: <img src="smilie1.gif" border=0 onclick="showsmile('::x1'); "> Zastupující znak potom pomocí PHP nahradíš za adresu obrázku. |
||
Hooonza Profil * |
#3 · Zasláno: 20. 2. 2007, 15:06:29
P.S.: Na 6. řádku skriptu má být "createRange" bez mezery. Funkční verze je tady.
|
||
jonge Profil |
#4 · Zasláno: 20. 2. 2007, 15:14:31 · Upravil/a: jonge
Hooonza
Díky, ale už jsem si našel chybu v mém skriptu, chyběla mi tam špičatá závorka. Kdyby to někoho zajímalo, skript je tady: function vlozSmajla(textarea, text) { |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0