EN
GR RU

Page 14 - Apartments for Sale in Cyprus

Wake up to uninterrupted sea views with these premium apartments in Cyprus, featuring floor-to-ceiling windows, expansive balconies, and direct Mediterranean panoramas. Designed for elegance and exclusivity, these oceanfront residences are located in prestigious coastal developments, offering privacy, sophistication, and stunning surroundings. Ideal for luxury seekers and investors, these high-end apartments redefine seafront living. Home › Apartments for Sale in Cyprus › Page 14 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; // Αφαιρεί τον αριθμό και το 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) {} })(); ...read more