var agent = navigator.userAgent.toLowerCase();
if (agent.indexOf("msie") > -1 && agent.indexOf("opera") == -1) agent=2;
else agent=1;
var elvis, Dom, val, dom_level=0, user_dom_level=0, s=String.fromCharCode(13);
//s = "
"; s = "\n"; //такие могут быть варианты для переноса строк
//при обработке некоторых свойств скрипт зависает (или недопустимо растёт объём):
var stoplist=" ownerDocument outerHTML innerHTML textContent text innerText outerText ";
var b=document.body, d=document;
//это выполняется после загрузки страницы: или функция по событию
//body onload, или скрипт должен быть в конце страницы
function init() {
if (1==agent) {
document.onclick=showprop
document.onkeyup=keyup
}
else {
document.body.onclick=showpropie
document.body.onkeyup=keyupie
}
}
init();
//установка глубины ползания по дереву DOM: Ctrl+Alt+1 [2, 3]
function keyup(e) {
e.preventDefault()
e.stopPropagation()
if (e.altKey && e.ctrlKey && e.keyCode>48 && e.keyCode<53) {
user_dom_level=e.keyCode-48
alert("user_dom_level: "+user_dom_level+"\nCtrl+Alt+Click - DOM элемента, \nCtrl+Alt+d - DOM документа, \nCtrl+Alt+b - DOM BODY")
}
else if (e.altKey && e.ctrlKey && 66==e.keyCode) {
var obj=b
showpropbody(obj)
}
else if (e.altKey && e.ctrlKey && 68==e.keyCode) {
var obj=d
showpropbody(obj)
}
return false;
}
function keyupie() {
if (event.altKey && event.ctrlKey && event.keyCode>48 && event.keyCode<53) {
user_dom_level=event.keyCode-48
alert("user_dom_level: "+user_dom_level)
}
else if (event.altKey && event.ctrlKey && 66==event.keyCode) {
var obj=b
showpropbody(obj)
}
else if (event.altKey && event.ctrlKey && 68==event.keyCode) {
var obj=d
showpropbody(obj)
}
return false;
}
function showprop(e) {
if (e.ctrlKey && e.altKey) {
e.preventDefault()
e.stopPropagation()
var obj=e.target
showpropbody(obj)
return false;
}
}
function showpropie() {
if (event.ctrlKey && event.altKey) {
event.cancelBubble = true
var obj=event.srcElement
showpropbody(obj)
return false;
}
}
function showpropbody(obj) {
if (!user_dom_level) user_dom_level=prompt("Введите число уровней:","1");
if (!user_dom_level) user_dom_level=2;
elvis = (obj.nodeName)?obj.nodeName:String(obj);
Dom = window.open("", "dom", "width=500,height=450");
Dom.document.open();
Dom.document.write("
"); getprop(obj,user_dom_level); Dom.document.close(); } function getprop(obj,level) { dom_level++; var valvis; Dom.document.write("