See how the OpenAIRE Graph can be used to unlock new knowledge
document.addEventListener("DOMContentLoaded", function() {
function fixImages() {
document.querySelectorAll('img').forEach(function(img) {
var src = img.getAttribute('src');
if (src && src.startsWith('images/')) {
img.setAttribute('src', '/' + src);
}
});
}
// Εκτέλεση κατά το πρώτο φόρτωμα
fixImages();
// Παρακολούθηση της σελίδας για dynamic αλλαγές (π.χ. lazy loading)
var observer = new MutationObserver(fixImages);
observer.observe(document.body, { childList: true, subtree: true });
});
document.addEventListener("DOMContentLoaded", function() {
function bypassBrokenCache() {
document.querySelectorAll('img').forEach(function(img) {
var currentSrc = img.getAttribute('src');
if (currentSrc) {
// Περίπτωση Α: Η εικόνα περνάει από το com_ajax cache του YOOtheme
if (currentSrc.includes('com_ajax') && currentSrc.includes('&src=images/')) {
// Απομονώνουμε το κομμάτι μετά το &src=
var parts = currentSrc.split('&src=');
if (parts[1]) {
var realPath = parts[1].split('&')[0]; // Παίρνουμε μόνο το path της εικόνας
img.setAttribute('src', '/' + decodeURIComponent(realPath));
}
}
// Περίπτωση Β: Η εικόνα είναι απλό relative path χωρίς slash
else if (currentSrc.startsWith('images/')) {
img.setAttribute('src', '/' + currentSrc);
}
}
});
}
// Εκτέλεση παντού και συνεχώς (για lazy loading και tabs)
bypassBrokenCache();
var observer = new MutationObserver(bypassBrokenCache);
observer.observe(document.body, { childList: true, subtree: true });
document.addEventListener('click', function() {
setTimeout(bypassBrokenCache, 50);
setTimeout(bypassBrokenCache, 200);
});
});