Ja, IE er en besynderlig browser, som det (også på dette punkt) kræver særbehandling ... den er alt andet end god til DOM :o|
function bla(id, text) {
var uA = navigator.userAgent.toLowerCase();
var ie = (uA.indexOf("msie")!=-1 && uA.indexOf("opera")==-1);
oTable = document.createElement('TABLE');
oTable.setAttribute('border', 0);
oTable.setAttribute('width', '100%');
oTable.setAttribute('cellspacing', 0);
oTable.setAttribute('cellpadding', 0);
oTB = document.createElement('tbody');
oTable.appendChild(oTB);
oTR = document.createElement('TR');
oTD = document.createElement('TD');
oTD.style.padding = 4;
oTD.setAttribute('valign','center');
oInput = (ie)? document.createElement('<input name="aftType">') : document.createElement('input');
oInput.setAttribute('type','radio');
oInput.setAttribute('name','aftType');
oInput.setAttribute('id',id);
oLabel = (ie)? document.createElement('<label for="'+id+'"></label>') : document.createElement('label');
if (!ie) oLabel.setAttribute('for',id);
oLabel.style.cursor = 'pointer';
oText = document.createTextNode(' ' + text);
oLabel.appendChild(oText);
oTD.appendChild(oInput);
oTD.appendChild(oLabel);
oTR.appendChild(oTD);
oTB.appendChild(oTR);
document.body.appendChild(oTable);
oTable.refresh()
}
window.onload = function() {
bla(1234, "noget");
}
- se evt. her:
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/createelement.asp- hvor de selv skriver om denne bug:
"Attributes can be included with the sTag as long as the entire string is valid HTML. You should do this if you wish to include the NAME attribute at run time on objects created with the createElement method.
Attributes should be included with the sTag when form elements are created that are to be reset using the reset method or a BUTTON with a TYPE attribute value of reset."
Du kan evt. teste med innerHTML for at se, hvad der egentlig bliver skrevet ud - med og uden dette 'hack' :)