Moin!
ich möchte in js das Event von einem Element an ein anderes übergeben und erweitern.
So siehts aus:
<input type="text" name="text1" onblur="mach_1()"/>
<input type="text" name="text2" onblur="mach_2()"/>
>
>
> Mit javascript will ich nun, dass bei "onblur" von text2 zuerst mach\_2() und dann mach\_1() ausgeführt wird.
aeh... Wenn mach1() ausgefuehrt werden soll und nicht "was bei text1 ausgefuehrt wird" dann doch einfach
~~~javascript
document.getElementsByName('text2')[0].onblur = function()
{
mach_2();
mach_1();
}
Oder, auf deine Art notiert:
<input type="text" name="text2" onblur="mach_2(); mach_1()"/>
Davon wuerde ich aber absehen. JS hat im HTML nicht viel verloren.
Falls das ganze dynamisch sein soll also mach_2() und "das was bei text1 gemacht wird, was immer das ist" musst Du natuerlich feststellen, was bei text1 so gemacht wird.
Das hier hab ich mal gebastelt. Kannst ja mal mit rumspielen:
// injects code into function code
// returns new code with injection
// nc new code, eh eventhandler/function (old code)
function injectCode(nc, eh)
{
// check if eventhandler or function exists
//alert(typeof eh);
if (!eh)
{
eh = function(){}
}
//alert("new code: " + nc);
//alert("function code: " + eh);
// get code out of eventhandler or function
// read function in eventhandler
var fc = eh.toString();
// get code out of function
var fBeg = fc.indexOf("{")+1;
var fEnd = fc.lastIndexOf("}");
var actCode = fc.slice(fBeg, fEnd);
//alert("actual code: " + actCode);
// add new code after old code
actCode = actCode + nc;
//alert("modified code: " + actCode);
return actCode;
}
Beispiel einer Integration:
var myElement=document.getElementsByName('text2')[0];
myElement.onblur = function()
{
alert('blur');
}
myElement.onblur = new Function(injectCode("alert('neuer code');", myElement.onblur));
--
Vergesst Chuck Norris.
Sponge Bob kann unter Wasser grillen!
Vergesst Chuck Norris.
Sponge Bob kann unter Wasser grillen!