EN
GR RU

Page 154 - Properties for Sale in Cyprus

Explore these exceptional real estate opportunities in Cyprus, perfect for creating your Mediterranean retreat. From charming coastal homes with breathtaking sea views to modern apartments nestled in serene surroundings, these properties offer the ideal escape. Enjoy the island’s warm climate, picturesque landscapes, and vibrant culture while living in comfort and style. Whether for a vacation home or a permanent residence, Cyprus real estate delivers the ultimate Mediterranean lifestyle. Home › Properties for Sale in Cyprus › Page 154 document.addEventListener("DOMContentLoaded", function () { try { const pageUrl = location.href.split('#')[0]; const base = location.origin; // Εφόσον υπάρχει μόνο ΕΝΑΣ αριθμός στο URL, τον βρίσκουμε απευθείας const pathParts = location.pathname.split('/').filter(Boolean); const pageNum = parseInt(pathParts.find(p => !isNaN(p))) || 1; const offset = (pageNum - 1) * 9; const pageTitle = document.title || ""; const pageDesc = (document.querySelector('meta[name="description"]')?.content || "").trim(); 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) => { let href = null; const links = Array.from(card.querySelectorAll('a[href]')); 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 || h[0] === '#' || /^javascript:/i.test(h) || /#myToggle/i.test(h)) continue; href = new URL(h, base).href; 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 priceText = clean(card.querySelector("p.prop-title-fixer")?.textContent || ""); const infoText = clean(card.querySelector(".res-prop-details .prop-info-fixer")?.textContent || ""); if (href && name && !seen.has(href)) { seen.add(href); const li = { "@type": "ListItem", "position": offset + index + 1, // Υπολογισμός θέσης: (Σελίδα-1)*9 + σειρά "url": href, "name": name }; if (image) li.image = image; if (infoText || priceText) { li.description = infoText + (infoText && priceText ? " — " : "") + priceText; } itemList.push(li); } }); const graph = [ { "@type": "CollectionPage", "@id": pageUrl + "#webpage", "url": pageUrl, "name": pageTitle, "description": pageDesc }, { "@type": "ItemList", "@id": pageUrl + "#itemlist", "url": pageUrl, "name": pageTitle, "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; // Διορθωμένο: Αφαιρεί τον αριθμό στο τέλος του URL (π.χ. /2 ή /3) 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": "Properties for Sale in Cyprus", "item": categoryUrl } ] }; // Διορθωμένο: Ελέγχει αν το 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) {} })(); ...read more