/WebSVN/javascript/blame-popup.js
0,0 → 1,40
// Find all tags that match <a class="blame-revision" ...> and add events.
var a = document.getElementsByTagName('a');
for (var i = 0; i < a.length; i++) {
if (a[i].className == 'blame-revision') {
addEvent(a[i], 'mouseover', function() { mouseover(this) } );
addEvent(a[i], 'mouseout', function() { mouseout(this) } );
}
}
 
function addEvent(obj, type, func) {
if (obj.addEventListener) {
obj.addEventListener(type, func, false);
return true;
} else if (obj.attachEvent) {
return obj.attachEvent('on'+type, func);
} else {
return false;
}
}
 
function mouseover(a) {
// Find the revision number within the hyperlink text
var m = /rev=(\d+)/.exec(a.href);
var r = m[1];
if (rev[r]) {
var div = document.createElement('div');
div.className = 'blame-popup';
div.innerHTML = rev[r];
a.parentNode.appendChild(div);
}
}
 
function mouseout(a) {
var div = a.parentNode.parentNode.getElementsByTagName('div');
for (var i = 0; i < div.length; i++) {
if (div[i].className = 'blame-popup') {
div[i].parentNode.removeChild(div[i]);
}
}
}