71 lines
2.4 KiB
JavaScript
71 lines
2.4 KiB
JavaScript
var defaultHeaderImage = (function () {
|
|
let box = document.getElementById('BoxTop');
|
|
for (let i = 0; i < box.getElementsByTagName('div').length; i++)
|
|
if ((' '+box.getElementsByTagName('div')[i].className+' ').indexOf('bgImage') >= 0) {
|
|
let spl = box.getElementsByTagName('div')[i].style.backgroundImage.split('"');
|
|
if (spl.length == 3)
|
|
return absolutePath(spl[1], self.location.href);
|
|
break;
|
|
}
|
|
return '';
|
|
})();
|
|
var currentHeaderImage = defaultHeaderImage;
|
|
function loadHeader (src, vPos='center', loadWithoutEffect=false) {
|
|
if (src == currentHeaderImage) return;
|
|
currentHeaderImage = src;
|
|
if (vPos == '')
|
|
vPos = 'center';
|
|
var img = new Image();
|
|
img.onload = function () {
|
|
var op = 0;
|
|
var oldEl = null;
|
|
var newEl = document.createElement('div');
|
|
var box = document.getElementById('BoxTop');
|
|
newEl.className = 'bgImage';
|
|
if (vPos)
|
|
newEl.style.backgroundPosition = 'center '+vPos;
|
|
newEl.style.backgroundImage = "url('"+img.src+"')";
|
|
for (let i = box.getElementsByTagName('div').length-1; i >= 0; i--)
|
|
if ((' '+box.getElementsByTagName('div')[i].className+' ').indexOf('bgImage') >= 0) {
|
|
oldEl = box.getElementsByTagName('div')[i];
|
|
break;
|
|
}
|
|
if (oldEl) {
|
|
newEl.style.opacity = 0;
|
|
box.insertBefore(newEl, oldEl.nextSibling);
|
|
if (loadWithoutEffect) {
|
|
newEl.style.opacity = 1;
|
|
box.removeChild(oldEl);
|
|
return;
|
|
}
|
|
} else {
|
|
box.insertBefore(newEl, box.firstChild);
|
|
return;
|
|
}
|
|
var tmr = window.setInterval(function () {
|
|
op += 0.01;
|
|
if (op >= 1) {
|
|
newEl.style.opacity = 1;
|
|
box.removeChild(oldEl);
|
|
img = null;
|
|
window.clearInterval(tmr);
|
|
} else
|
|
newEl.style.opacity = op;
|
|
}, 10);
|
|
};
|
|
img.src = src;
|
|
}
|
|
function searchHeaderImage (site, loadWithoutEffect) {
|
|
try {
|
|
let meta = site.document.getElementsByTagName('head')[0].getElementsByTagName('meta');
|
|
for (let i = 0; i < meta.length; i++)
|
|
if (meta[i].getAttribute('property') == 'og:image') {
|
|
let newPath = absolutePath(meta[i].getAttribute('content'), site.location.href);
|
|
if (currentHeaderImage != newPath)
|
|
loadHeader(newPath, meta[i].getAttribute('position'), loadWithoutEffect);
|
|
return;
|
|
}
|
|
} catch (e) { }
|
|
loadHeader(defaultHeaderImage, loadWithoutEffect);
|
|
}
|