| 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: 17 let
|
|||
0