';
case "\t":
return " ";
case " ":
return " ";
}
});
}
var sourceCode = ['
'];
errors.sort(function(a, b) {
return a.head - b.head;
});
var rular = 0;
for (var i = 0, l = errors.length; i < l; i++) {
var uc = errors[i];
if (rular < uc.tail) {
var head = re(html.substring(rular, uc.head));
var tag = re(html.substring(uc.head, uc.tail));
sourceCode.push(head,
'
',
'',
tag,
'');
uc.lineNumber = sourceLine;
rular = uc.tail;
}
}
sourceCode.push(re(html.substring(rular)), '
');
var div = $('source');
div.innerHTML = sourceCode.join("");
})();
// show list
(function() {
var listHTML = ['
'];
for (var i = 0, l = errors.length; i < l; i++) {
var uc = errors[i];
listHTML.push('- ',
'(' + uc.lineNumber + '行目) ',
'<',
uc.tagName + uc.attr,
'> : ',
uc.message,
'
');
}
listHTML.push('
');
$('list').innerHTML = listHTML.join("");
})();
$('resultarea').className = 'show';
//$('debug').innerHTML = closed.toSource();
};
w.go = function(id) {
var before = w.scrollY || 0;
var elem = $(id);
elem.focus();
var after = w.scrollY || 0;
var wh = w.innerHeight;
var top = pos(elem).top;
var M = 50;
if (top < M) {
w.scrollBy(0, -wh / 2);
} else if (wh - M < top) {
w.scrollBy(0, wh / 2);
}
};
return w;
})();
// Get html code by re-request
var html = (function() {
var ajax = (function() {
try {
return window.XMLHttpRequest ? new XMLHttpRequest()
: (ActiveXObject ? new ActiveXObject('Msxml2.XMLHTTP') : null);
} catch (e) {
return new ActiveXObject('Microsoft.XMLHTTP');
}
})();
ajax.open("GET", location.href, false);
ajax.send('');
return ajax.responseText;
})();
var opened = {};
var closed = {};
var errors = [];
var debug = [];
var ignoring = [];
// そもそも空要素のタグ
var EMPTYTAG = ['img', 'link', 'meta', 'br', 'hr', 'input',
'embed', 'area', 'base', 'basefont', 'bgsound',
'param', 'wbr', 'col'];
EMPTYTAG.indexOf = EMPTYTAG.indexOf || function(str) {
for (var i = 0, l = this.length; i < l; i++) {
if (this[i] == str) {
return i;
}
}
return -1;
};
// 無視ゾーンを検索する
(function() {
var ignorePattern = /(