Autor | Zpráva | ||
---|---|---|---|
Deedee Profil * |
Dobrej den ve spolek...
Snažím se vytvořit skritp na vkládání BB značek do textarea, ale v IE mi to pořád hází chyby (v FF te jede bez problémů). Chci, aby se vkládal na pozici kurzoru a pokud bude označen nějaký text, tak aby text byl vložen do značek. Javascript <script type="text/javascript"> <!-- function insertAtCursor(myField, prefix, postfix) { var re = new RegExp("^(.*\S)(\s*)$"); myField.focus(); //IE support if (document.selection) { sel = document.selection.createRange(); var selection = sel.zprava; var wasEmpty = (selection == ''); var space = ''; if (!wasEmpty) { var matches = selection.match(re); if (matches) { selection = RegExp.$1; space = RegExp.$2; }} sel.text = prefix+selection+postfix+space; sel.collapse(false); if (wasEmpty) { sel.moveEnd('character',-(prefix.length+1)) } sel.select(); } //MOZILLA/NETSCAPE support else { if (myField.selectionStart || myField.selectionStart == '0') { var startPos = myField.selectionStart; var endPos = myField.selectionEnd; var selection = myField.value.substring(startPos, endPos); var wasEmpty = (startPos == endPos); var space = ""; if (!wasEmpty) { var matches = selection.match(re); if (matches) { selection = RegExp.$1; space = RegExp.$2; }} myField.value = myField.value.substring(0, startPos) + prefix+selection+postfix+space + myField.value.substring(endPos, myField.value.length); var newPosition; if (wasEmpty) { newPosition = startPos+prefix.length; } else { newPosition = startPos+prefix.length+selection.length+postfix.length+space.length; } myField.setSelectionRange(newPosition, newPosition); } else { myField.value += prefix+postfix; myField.setSelectionRange(startPos+prefix.length, startPos+prefix.length); }}} --> </script> formulář <form method="post" action="zprava.php" id="form"> <textarea class="reg-textarea-big" cols="50" rows="6" name="zprava" id="zprava"></textarea> vkládání <a href="javascript:insertAtCursor(document.getElementById('form').zprava , 'znacka', '/znacka');" ><img src="pic/bold.gif" alt="bold" class="pomocnik-pic" /></a> Jak jsem psal, v IE nefunguje (v opeře teké ne), ale ve FF šlape jako hodinky... kde může být chyba? — Moderátor (S): Upraven zdrojový kód podle autorova dalšího příspěvku. — |
||
peta Profil |
#2 · Zasláno: 20. 2. 2008, 14:18:39
Deedee
http://www.volny.cz/peter.mlich/www.htm#mssub12 google.com textarea javascript cursor crossbrowser google.com textarea javascript kurzor site:diskuse.jakpsatweb.cz Kdo nehleda, nenajde. Str4wberry - vyborne, konecne inteligentni moderator, ktery se umi pod upravy podepsat, napise druh upravy a nezahlcuje zbytecnym prispevkem :) |
||
Deedee Profil * |
#3 · Zasláno: 20. 2. 2008, 14:28:14
google sjíždím už několik hodin, ale řešení jsem nenašel.
Problém vězí někde tady var re = new RegExp("^(.*\S)(\s*)$"); var matches = selection.match(re); v debugeru mi to hlásí, že je buď nulový, nebo není objekt, ale nevím si s tím rady, javascript není moje nejsilnější stránka :( Jinak díky adminovi za opravu. |
||
centi Profil |
#4 · Zasláno: 20. 2. 2008, 14:37:26 · Upravil/a: centi
var selection = sel.zprava; zmeniť na: var selection = sel.text; |
||
Deedee Profil * |
#5 · Zasláno: 20. 2. 2008, 14:45:09
jo, funguje to, díky moc :)
|
||
Časová prodleva: 16 let
|
0