| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Wetmaster Registriert seit: Aug 2001 Ort: BERLIN
Beiträge: 3.075
| Smilies an Cursor einfügen
Habe mir im Netz ein Snippet rausgesucht um damit Smilies in eine Textarea einzufügen. Und zwar beim Mauscursor. Ich benutzte dafür Jquery und Jsmile. Jsmile generiert zB aus :lol: clientseitig eine Smiliegrafik. hier die Funktion: HTML-Code: jQuery.fn.insertAtCursor = function(myValue) {
//IE support
var myField = $("textarea");
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
}
//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)
+ myValue
+ myField.value.substring(endPos, myField.value.length);
} else {
myField.value += myValue;
}
} HTML-Code: $(document.body).smile().find(".smilies img").css("cursor","pointer").click(function(){
var smiletext = $(this).attr("alt");
$("textarea").insertAtCursor(smiletext);
});
}); jetzt habe ich bei selfhtml auch noch ein Snippet gefunden. Das geht wieder im IE und Opera aber bei FF kriege ich "input.value is undefined": HTML-Code: jQuery.fn.insertAtCursor = function(aTag) {
var input = $("textarea");
input.focus();
/* für Internet Explorer */
if(typeof document.selection != 'undefined') {
/* Einfügen des Formatierungscodes */
var range = document.selection.createRange();
var insText = range.text;
range.text = insText + aTag;
range.select();
}
/* für neuere auf Gecko basierende Browser */
else if(typeof input.selectionStart != 'undefined')
{
/* Einfügen des Formatierungscodes */
var start = input.selectionStart;
var end = input.selectionEnd;
var insText = input.value.substring(start, end);
input.value = input.value.substr(0, start) + insText + aTag + input.value.substr(end);
input.selectionStart = pos;
input.selectionEnd = pos;
}
/* für die übrigen Browser */
else
{
/* Abfrage der Einfügeposition */
var pos;
var re = new RegExp('^[0-9]{0,3}$');
while(!re.test(pos)) {
pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
}
if(pos > input.value.length) {
pos = input.value.length;
}
/* Einfügen des Formatierungscodes */
var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
input.value = input.value.substr(0, pos) + insText + aTag + input.value.substr(pos);
}
} Geändert von Nicmare (16-09-2008 um 14:40 Uhr) |
| | |
| | #3 (permalink) |
| Inventar Registriert seit: Jul 2002
Beiträge: 6.882
|
Könnte helfen: http://laboratorium.0xab.cd/jquery/f....1.0/test.html http://laboratorium.0xab.cd/jquery/f...ldselection.js
__________________ (\__/) (='.'=) (")_(") |
| | |
| | #4 (permalink) |
| Wetmaster Registriert seit: Aug 2001 Ort: BERLIN
Beiträge: 3.075
|
hey. interessantes script. aber tut das not? ich mein ich habe das gefühl dass ich nur ne kleinigkeit übersehe. und bevor ich da irgendein plugin nehme, würde ich(wir) dem mysterium gerne auf den grund gehen und die ursache finden |
| | |
| | #6 (permalink) |
| Wetmaster Registriert seit: Aug 2001 Ort: BERLIN
Beiträge: 3.075
|
wie ich es mir gedacht hab lag das problem in der jquery function. statt $("textarea").insertAtCursor(smiletext); muss es einfach nur insertAtCursor(smiletext); heißen. dooooooh............ danke nighty für die hilfreichen tipps!! |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |