ONK
Пассивист PHPСluba
Не удаётся перебрать свойства DOM HTML объекта
Написал я сегодня print_r для Js переменных и столкнулся с проблемой, решить которую не могу, готов сдаться. -(
Суть проблемы в том, что DOM объекты нормально раскрываются только в Опере (вот так, я сам удивлён), а в FF и IE происходит "неизвестная" ошибка при попытке доступа к свойству объекта.
При этом перебор свойств user defined объектов происходит без каких либо проблем во всех браузерах.
Если у кого есть мысли, буду очень благодарен.
Вот тестовый скрипт
Написал я сегодня print_r для Js переменных и столкнулся с проблемой, решить которую не могу, готов сдаться. -(
Суть проблемы в том, что DOM объекты нормально раскрываются только в Опере (вот так, я сам удивлён), а в FF и IE происходит "неизвестная" ошибка при попытке доступа к свойству объекта.
При этом перебор свойств user defined объектов происходит без каких либо проблем во всех браузерах.
Если у кого есть мысли, буду очень благодарен.
Вот тестовый скрипт
PHP:
<html>
<body>
<script language='JavaScript'><!--
function print_r(mVar,iDebugLevel){
var sOut = '';
if(iDebugLevel){
iDebugLevel--;
switch(typeof(mVar)){
case 'object':
case 'array':
sOut += typeof(mVar) + "{<BLOCKQUOTE>";
for(key in mVar){
sOut += "<br>" + "[" + key + " ] = " + print_r(mVar[key],iDebugLevel);
}
sOut += "</BLOCKQUOTE>}";
break;
case 'string':
sOut += mVar;
break;
case 'number':
sOut += mVar;
break;
case 'boolean':
sOut += "boolean (" + mVar + ")";
break;
case 'function':
if(0){
sOut += mVar;
}else{
sOut += '...handler source code...';
}
break;
default:
sOut += typeof(mVar);
}
}else{
sOut += "...";
}
return sOut;
}
function debug_var(mVar,iDebugLevel){
oShowArea = document.createElement('DIV');
oShowArea.style.width = 640;
oShowArea.style.height = 480;
oShowArea.style.position = 'absolute';
oShowArea.style.overflow = 'auto';
oShowArea.style.left = 100;
oShowArea.style.top = 100;
oShowArea.style.backgroundColor = 'EEEEEE';
oShowArea.style.fontSize = '16px';
document.body.appendChild(oShowArea);
oShowArea.innerHTML = '<div align="center" onclick="document.body.removeChild(this.parentNode);" style="font-size:16px;background-color:FFFF55;cursor:pointer">Закрыть</div>';
oShowArea.innerHTML += print_r(mVar,iDebugLevel);
}
function testObject(){
this.testVar1 = 1234546;
this.testVar2 = 'test string';
this.testVar3 = false;
this.testVar4 = new Array(1,2,3,'aewagery');
}
var oTestObj = new testObject();
//debug_var(oTestObj,3)
debug_var(document,3)
//-->
</script>
</body>
<html>