読者です 読者をやめる 読者になる 読者になる

IEでXML(ActiveXのMicrosoft.XMLDOMを使用)の要素に対してbooleanをsetAttributeすると、trueが"-1"、falseが"0"として設定される

スポンサーリンク

IE7、Firefox3で確認しました。

/*
// Firefox
var wp = new XPCNativeWrapper(window, 'DOMParser()');
var parser = new wp.DOMParser();
var xmlDoc = parser.parseFromString('<xml><\/xml>', 'text/xml');
*/
// IE
var xmlDoc = new ActiveXObject('Microsoft.XMLDOM')
xmlDoc.loadXML('<xml><\/xml>');
var doc = xmlDoc.documentElement;

doc.setAttribute('true', true);
doc.setAttribute('false', false);

// IE      -> true:-1 false:0
// Firefox -> true:true false:false
alert('true:' + doc.getAttribute('true') + ' false:' + doc.getAttribute('false'));
alert(doc.xml);

ちなみに、HTMLの要素に対しては、trueは"true"、falseは"false"として設定されます。

var div = document.createElement('div');
div.setAttribute('true', true);
div.setAttribute('false', false);

// IE/Firefox共に true:true false:false
alert('true:' + div.getAttribute('true') + ' false:' + div.getAttribute('false'));