Τα ετοιμοπαράδοτα σπίτια στη Λάρνακα δεν είναι απλώς ένας τόπος διαμονής· είναι μια πρόσκληση να αγκαλιάσετε την απλότητα και την άνεση από το πρώτο κιόλας βήμα. Αυτά τα σπίτια έχουν σχεδιαστεί προσεκτικά για να προσφέρουν άμεση γαλήνη και ευκολία, δίνοντάς σας την ευκαιρία να εγκατασταθείτε σε μια ζωή που μοιάζει σαν να δημιουργήθηκε αποκλειστικά για εσάς. Οι ασυναγώνιστες τιμές της Λάρνακας καθιστούν πιο εύκολη από ποτέ την απόκτηση ενός ακινήτου που συνδυάζει προσιτότητα με εξαιρετική αξία. Με κάθε σπίτι, δεν αγοράζετε απλώς τοίχους – επενδύετε σε έναν τρόπο ζωής όπου η ευκολία συναντά τη γαλήνια ομορφιά. Είτε πρόκειται για τη γοητεία των ήσυχων δρόμων της Λάρνακας είτε για τους φιλόξενους εσωτερικούς χώρους αυτών των κατοικιών, κάθε χώρος είναι σχεδιασμένος για να σας κάνει να νιώθετε αμέσως στο σπίτι σας.
Αρχική › Ακίνητα προς Πώληση Λάρνακα › Κατοικίες προς Πώληση Λάρνακα › Σελίδα 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 clean = (t) => (t || "")
.replace(/€|€/gi, "€")
.replace(/\u00A0/g, " ")
.replace(/\s+/g, " ")
.trim();
// τιμή
const priceTextRaw = (card.querySelector("p.prop-title-fixer")?.textContent || "");
const priceText = clean(priceTextRaw);
// περιγραφή από την κάρτα (overlay)
const infoTextRaw = card.querySelector(".res-prop-details .prop-info-fixer")?.textContent || "";
let infoText = clean(infoTextRaw);
// φτιάξε το ListItem
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;
// Χωρίς truncate — κρατά ολόκληρο το description
if (infoText) {
let d = infoText;
if (priceText) d = `${d} — ${priceText}`;
li.description = d; // κρατά όλο το κείμενο
} else 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) {}
});
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type":"ListItem","position":1,"name":"Αρχική","item":"https://www.cyprusbuyproperties.com/Arxiki" },
{ "@type":"ListItem","position":2,"name":"Ακίνητα προς Πώληση Λάρνακα","item":"https://www.cyprusbuyproperties.com/gr/sale/Larnaca/Properties" },
{ "@type":"ListItem","position":3,"name":"Κατοικίες προς Πώληση Λάρνακα","item":"https://www.cyprusbuyproperties.com/gr/sale/Larnaca/Houses/Properties" },
{ "@type":"ListItem","position":4,"name":"Σελίδα 25" }
]
}
Τα ετοιμοπαράδοτα σπίτια στη Λάρνακα δεν είναι απλώς ένας τόπος διαμονής· είναι μια πρόσκληση να αγκαλιάσετε την απλότητα και την άνεση από το πρώτο κιόλας βήμα. Αυτά τα σπίτια έχουν σχεδιαστεί προσεκτικά για να προσφέρουν άμεση γαλήνη και ευκολία, δίνοντάς σας την ευκαιρία να εγκατασταθείτε σε μια ζωή που μοιάζει σαν να δημιουργήθηκε αποκλειστικά για εσάς. Οι ασυναγώνιστες τιμές της Λάρνακας καθιστούν πιο εύκολη από ποτέ την απόκτηση ενός ακινήτου που συνδυάζει προσιτότητα με εξαιρετική αξία. Με κάθε σπίτι, δεν αγοράζετε απλώς τοίχους – επενδύετε σε έναν τρόπο ζωής όπου η ευκολία συναντά τη γαλήνια ομορφιά. Είτε πρόκειται για τη γοητεία των ήσυχων δρόμων της Λάρνακας είτε για τους φιλόξενους εσωτερικούς χώρους αυτών των κατοικιών, κάθε χώρος είναι σχεδιασμένος για να σας κάνει να νιώθετε αμέσως στο σπίτι σας.
Αρχική › Ακίνητα προς Πώληση Λάρνακα › Κατοικίες προς Πώληση Λάρνακα › Σελίδα 25
...διαβάστε περισσότερα