A wide range of Cyprus apartments for sale awaits, offering secure and smart investment opportunities. Featuring modern designs, premium materials, and locations in high-demand areas, these apartments provide excellent long-term value. Whether you’re a first-time buyer or an experienced investor, these properties are tailored to meet diverse needs while ensuring stability and returns. Embrace the perfect blend of comfort and investment potential with these exceptional apartments.
Home › Apartments for Sale in Cyprus › Page 25
document.addEventListener("DOMContentLoaded", function () {
try {
const pageUrl = location.href.split('#')[0];
const base = location.origin;
const pageTitle = document.title || "";
const pageDesc = (document.querySelector('meta[name="description"]')?.content || "").trim();
// Πάρε τις κάρτες (νέο DOM) ή fallback (παλιό DOM)
let cards = document.querySelectorAll(".result-card");
if (!cards || cards.length === 0) cards = document.querySelectorAll(".re_prop .col-xs-4");
const seen = new Set();
const itemList = [];
cards.forEach((card, index) => {
// ---- URL (ανθεκτικό: αγνοεί anchors, #myToggle, javascript:)
let href = null;
const links = Array.from(card.querySelectorAll('a[href]'));
// δώσε προτεραιότητα σε a.hcaption, μετά σε h2>a, μετά στα υπόλοιπα
links.sort((a, b) => {
const aw = a.matches('a.hcaption') ? 0 : a.closest('h2') ? 1 : 2;
const bw = b.matches('a.hcaption') ? 0 : b.closest('h2') ? 1 : 2;
return aw - bw;
});
for (const a of links) {
const h = (a.getAttribute('href') || '').trim();
if (!h) continue;
if (h[0] === '#') continue; // αγνόησε anchors (#myToggle κ.λπ.)
if (/^javascript:/i.test(h)) continue; // αγνόησε javascript:
if (/#myToggle/i.test(h)) continue; // αγνόησε ρητά #myToggle
href = new URL(h, base).href; // absolute URL
break;
}
// ---- τίτλος
const h2 = card.querySelector("h2.prop-title, h2.prop-title-fixer, h2");
const name = (h2?.textContent || "").trim();
// ---- εικόνα
const imgEl = card.querySelector("img");
let image = imgEl ? (imgEl.getAttribute("data-src") || imgEl.getAttribute("data-lazy") || imgEl.getAttribute("src")) : null;
if (image) image = new URL(image, base).href;
// ---- τιμή ως κείμενο (προαιρετικό)
const priceText = (card.querySelector("p.prop-title-fixer")?.textContent || "")
.replace(/\s+/g," ").trim();
if (href && name && !seen.has(href)) {
seen.add(href);
const li = {
"@type": "ListItem",
"position": index + 1,
"url": href,
"name": name
};
if (image) li.image = image;
if (priceText) li.description = priceText;
itemList.push(li);
}
});
// JSON-LD (CollectionPage + ItemList)
const graph = [
{
"@type":"CollectionPage",
"@id": pageUrl + "#webpage",
"url": pageUrl,
"name": pageTitle,
"description": pageDesc
},
{
"@type":"ItemList",
"@id": pageUrl + "#itemlist",
"url": pageUrl,
"name": pageTitle,
"description": pageDesc,
"numberOfItems": itemList.length,
"itemListElement": itemList
}
];
const s = document.createElement("script");
s.type = "application/ld+json";
s.text = JSON.stringify({ "@context":"https://schema.org", "@graph": graph });
document.head.appendChild(s);
} catch(e) {}
});
(function() {
try {
const currentUrl = window.location.href.split('#')[0];
const baseUrl = window.location.origin;
const pageTitle = document.title;
// Αφαιρεί τον αριθμό και το slash που τον ακολουθεί (π.χ. το /2/ γίνεται /)
// Μετατρέπει το .../Apartments/2/Properties σε .../Apartments/Properties
const categoryUrl = currentUrl.replace(/\/\d+\//, '/');
const breadcrumbData = {
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": baseUrl
},
{
"@type": "ListItem",
"position": 2,
"name": "Apartments for Sale in Cyprus",
"item": categoryUrl
}
]
};
// Ελέγχει αν υπάρχει ο αριθμός /2/ στο URL
if (/\/\d+\//.test(currentUrl)) {
breadcrumbData.itemListElement.push({
"@type": "ListItem",
"position": 3,
"name": pageTitle,
"item": currentUrl
});
}
const script = document.createElement('script');
script.type = 'application/ld+json';
script.text = JSON.stringify(breadcrumbData);
document.head.appendChild(script);
} catch (e) {}
})();
A wide range of Cyprus apartments for sale awaits, offering secure and smart investment opportunities. Featuring modern designs, premium materials, and locations in high-demand areas, these apartments provide excellent long-term value. Whether you’re a first-time buyer or an experienced investor, these properties are tailored to meet diverse needs while ensuring stability and returns. Embrace the perfect blend of comfort and investment potential with these exceptional apartments.
Home › Apartments for Sale in Cyprus › Page 25
...read more