Autor | Zpráva | ||
---|---|---|---|
Sylar Profil |
#1 · Zasláno: 19. 8. 2008, 14:24:26
Zdravím,
potřeboval bych pomoct se scriptem zjištujicí pozici kurzoru v textaree. Měl by vkládat před a za vybranou část textarey tag. function insertTag(textareaID, before, after, KeepSelection) { var ta = document.getElementById(textareaID); ta.focus(); if(!(document.selection.createRange)&&(ta.selectionStart)&&(ta.selecti onEnd)) {//Mozilla ss = ta.selectionStart; se = ta.selectionEnd; xt = ta.value; out = xt.substring(0, ss)+before; if(KeepSelection) out += xt.substring(ss, se); out += after+xt.substring(se, xt.length); ta.value = out; } else if(document.selection&&document.selection.createRange) { //MSIE r = document.selection.createRange(); if(r.text != '') { out = before; if(KeepSelection) { out += r.text; } out += after; r.text = out; } else { ta.value += before+after; } } else { ta.value += before+after; } ta.focus(); } Našel jsem toto, ale nefunguje mi to :( V html mám pak toto: <a href="#" onclick="insertTag('text','[h]','[/h]'); return false;" title="Head">[h][/h]</a> Ještě by tam někam měla přijít tato část, která tu fci zajištuje v IEs ale nejsem si jistej kam ... var range = document.selection.createRange(); var len = range.text.length; range.moveStart('textedit', -1); var selectionStart = range.text.length - len; V podstatně bych potřeboval udělat to samé jako je tady na foru. Když je vybrán kus textu obalit ho tagy, poukd není vložit na místo kurzoru oba dva tagy zároveň. |
||
Str4wberry Profil |
#2 · Zasláno: 19. 8. 2008, 14:39:37
Potřebuješ-li „to samé jako je tady na foru“, tak si to zkopíruj.
|
||
Sylar Profil |
#3 · Zasláno: 19. 8. 2008, 14:43:51
Str4wberry
Už jsem na to koukal, ale potřebuji to pro komerční projekt :( |
||
peta Profil |
#4 · Zasláno: 19. 8. 2008, 15:24:35 · Upravil/a: peta
http://www.volny.cz/peter.mlich/x/textarea2.html
'potřebuji to pro komerční projekt' Tady na foru je to volne siritelny kod, cos tim chtel jako rici? |
||
Chamurappi Profil |
#5 · Zasláno: 19. 8. 2008, 15:29:42 · Upravil/a: Chamurappi
Reaguji na Sylara:
Skript pro komerční projekt se nějak liší od skriptu pro nekomerční? Reaguji na peta: Když se na tvoji ukázku podívám v Exploreru, neoznačím v <textarea> žádný text a jen klikám na „úsměv“, vyrábím tím hodně vysmáté tlačítko. |
||
Sylar Profil |
#6 · Zasláno: 19. 8. 2008, 15:37:30
peta
No nééééé to je paráda :-) ... jen v IE6 a 7 to blbne když není vybranej žádnej text .. to by ale mělo odstranit tohle ... var range = document.selection.createRange(); var len = range.text.length; range.moveStart('textedit', -1); var selectionStart = range.text.length - len; viz ... Odkaz |
||
Sylar Profil |
#7 · Zasláno: 19. 8. 2008, 15:42:10
Chamurappi
Ne-e :-) to určitě neliší, problém je ale s licencí miniBB fora. Koukal jsem na ní a pro komerční účely se používat free verze nesmí tj ani její části |
||
peta Profil |
#8 · Zasláno: 19. 8. 2008, 20:31:02
Sylar
forum ne, ale casti scriptu a navic tak bezne se pouzivat muzou. Chamurappi Mne to chodilo v obou prohlizecich. A nedal jsi lepsi, tak nekritizuj :) Parada, mas pravdu, kdyz neni nic vybrane :) Spatne nastaveny focus, mozna kurzor, jak pise Sylar |
||
Str4wberry Profil |
#9 · Zasláno: 19. 8. 2008, 21:15:42 · Upravil/a: Str4wberry
Teď mi došlo, že autorem zdejšího skriptu je zdejší kolega Jan Tvrdík, můžeš se s ním zkusit domluvit.
|
||
peta Profil |
#10 · Zasláno: 20. 8. 2008, 09:30:47
Sylar
var oznaceni = document.selection.createRange(); text_stred = text_pred + text_stred + text_za; textarea.focus(); za text_stred = text_pred + text_stred + text_za; textarea.focus(); var oznaceni = document.selection.createRange(); Cely problem je v tom, ze je focus na tlacitku a je treba jej presunout na textarea a tam provest createRange. Explorer to ma trosku zmatene, mam pocit, ze select bere jen z document a uz ne primo z textarea a zjistuje si, kde je aktualne kurzor (takove klasicke MS zjednoduseni vedouci ke komplikacim). |
||
Sylar Profil |
#11 · Zasláno: 20. 8. 2008, 13:24:27
peta
okok super paráda :-) díky moc, moc si mi pomohl |
||
Časová prodleva: 16 let
|
0