You can't trigger but can achieve the same effect :)

An you will definitely deal with Ranges to make your code cross browser :)

jQuery HowTo Resource  -  http://jquery-howto.blogspot.com



On Fri, Jan 9, 2009 at 7:43 PM, Ricardo Tomasi <ricardob...@gmail.com> wrote:
>
> You can't actually trigger a keypress, only it's event listeners. I
> think you'll have to deal with "ranges": 
> https://developer.mozilla.org/En/DOM/Range
>
> On Jan 9, 4:03 am, RSol <viacheslav.rud...@gmail.com> wrote:
>> To replace ':)' to image I see 2 variants:
>> When I detect ':)' I:
>> 1. Emulate two BackSpace and execCommand('InsertImage',false,img)
>> 2. Get all text from '#editor', then String.replace(/:\)/g,img), then
>> put that in '#editor', then need moove cursor to the end of '#editor'.
>> I dont know how to move cursor to the end of editor.
>>
>> I select 1st variant, and try emulate BackSpace key. Using $
>> ('#editor').trigger("keypress", ........) I cant do this - I dont ckow
>> how!
>> I find:
>>
>> var evt = document.createEvent("KeyEvents");
>> evt.initKeyEvent(
>>   "keypress",        //  in DOMString typeArg,
>>   true,             //  in boolean canBubbleArg,
>>   true,             //  in boolean cancelableArg,
>>   null,             //  in nsIDOMAbstractView viewArg,  Specifies
>> UIEvent.view. This value may be null.
>>   false,            //  in boolean ctrlKeyArg,
>>   false,            //  in boolean altKeyArg,
>>   false,            //  in boolean shiftKeyArg,
>>   false,            //  in boolean metaKeyArg,
>>   8,               //  in unsigned long keyCodeArg,
>>   0);              //  in unsigned long charCodeArg);
>> $('#editor')[0].dispatchEvent(evt);
>>
>> it's work in FF, but dont work in IE.
>>
>> > Ah, I think I see the issue. Am I right in assuming that you don't
>> > want to simulate the backspace, but detect it?
>>
>> I need to simulate the BackSpace
>>
>> > Also, how are you keeping track of the replacement? It seems to me
>> > that you could do yourself a big favor and make what the user enters
>> > not what you show the user, so when they delete a smiley, you can just
>> > remove the whole thing?

Reply via email to