Moin Moin!
»» Ich meine mich zu erinnern, dass ein einfaches Try-Catch vollkommen ausreicht.
Ich vermeide try-catch soweit wie möglich und verwende lieber sowas:
if (/@cc_on !@/false) { // IE
var a = document.createElement('<input type="hidden">');
}
else {
a = document.createElement('input');
a.type = 'hidden';
}
Das impliziert, dass die Conditional Comments und die erweiterte Form von document.createElement() immer gleichzeitig vorkommen. try-catch macht diese Annahme nicht und kommt auch mit Browsern klar, die sich hinsichtlich document.createElement() wie die aktuellen IEs benimmt, aber Conditional Comments nicht implementiert, oder umgekehrt.
Wenn viele input-Elemente erzeugt werden sollen, kann man natürlich etwas optimieren. Zum Beispiel mit einer Funktion, die sich selbst ersetzt:
~~~javascript
function createInputElementMS(theType)
{
return document.createElement('<input type="'+theType+'">');
}
function createInputElementW3C(theType)
{
var inp=document.createElement('input');
inp.type=theType;
return inp;
}
function createInputElement(theType)
{
var inp,e;
try {
inp=createInputElementMS(theType);
window.createInputElement=createInputElementMS;
} catch (e) {
inp=createInputElementW3C(theType);
window.createInputElement=createInputElementW3C;
}
return inp;
}
(Aus dem Gedächnis, ich komm an den Code nicht mehr heran.)
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".