• DELETE FROM KEYWORDS WHERE ID_DOMAINE=25103
  • DoneDoneDone

    URL:www.squarefoot.com.hk

    Cache-Control: max-age=3600
    Connection: keep-alive
    Date: Wed, 19 Mar 2025 23:03:41 GMT
    Content-Length: 167
    Content-Type: text/html
    Expires: Thu, 20 Mar 2025 00:03:41 GMT
    Location: https://www.squarefoot.com.hk/
    Server: cloudflare
    CF-RAY: 92309ac62b15d494-CDG
    alt-svc: h3=":443"; ma=86400
    
    
    Location => https://www.squarefoot.com.hk/
    Status => 301
    <html>
    <head><title>301 Moved Permanently</title></head>
    

    (vide) Tentative en https

    https://www.squarefoot.com.hk/

    <!doctype html><html lang="zh-Hant"><head><meta charset="utf-8"><title>Squarefoot 5平方 - 香港優質樓盤 – 網上搵樓</title><meta name="description" content="香港搵樓網,搜尋最新及最熱門屋苑、服務式住宅及獨立屋等樓盤。 提供單位面積、價格、成交記錄、平面圖、VR全景睇樓、以及最新樓市新聞和資訊。立即瀏覽squarefoot.com.hk [5平方] 尋找您的心水樓盤。"><meta name="keywords" content="租樓,租屋,租房,買屋,買樓,搵樓,樓盤,出售,樓盤搜尋,地產,業主,代理,自讓,住宅,車位,分租,短租,村屋,工商,商廈,店舖,獨立屋,套房,土地,農地,公屋"><meta name="robots" content="index, max-image-preview:large"><meta property="og:site_name" content="Squarefoot 5平方"><link rel="apple-touch-icon" href="/assets/images/sqfoot_icon.png" sizes="200x200"><link rel="icon" type="image/png" href="/assets/images/sqfoot_icon.png" sizes="200x200" /><link rel="shortcut icon" href="/assets/images/sqfoot_icon.png" /><link rel="canonical" href="https://www.squarefoot.com.hk/"><link rel="alternate" href="https://www.squarefoot.com.hk/" hreflang="x-default" /><link rel="alternate" href="https://www.squarefoot.com.hk/en/" hreflang="en" /><link rel="alternate" href="https://www.squarefoot.com.hk/" hreflang="zh-Hant" /><link rel="alternate" href="https://www.squarefoot.com.hk/cn/" hreflang="zh-Hans" /><link rel="dns-prefetch" href="//ajax.googleapis.com" />
    <link rel="dns-prefetch" href="//google-analytics.com" />
    <link rel="dns-prefetch" href="//www.google-analytics.com" />
    <link rel="preconnect"  href="//www.google-analytics.com" >
    <link rel="dns-prefetch" href="//chart.googleapis.com" />
    <link rel="dns-prefetch" href="//fonts.gstatic.com" />
    <link rel="dns-prefetch" href="//fonts.googleapis.com" />
    <link rel="dns-prefetch" href="//googletagmanager.com" />
    <link rel="preconnect"  href="//googletagmanager.com" >
    <link rel="dns-prefetch" href="//maps.googleapis.com" />
    
        <link rel="dns-prefetch" href="//i1.28hse.com" />
        <link rel="dns-prefetch" href="//in1.28hse.com" />
        <link rel="dns-prefetch" href="//is1.28hse.com" />
        <link rel="dns-prefetch" href="//v.28hse.com" />
    
    <link rel="dns-prefetch" href="//i1.squarefoot.com.hk" />
    <link rel="dns-prefetch" href="//in1.squarefoot.com.hk" />
    <link rel="dns-prefetch" href="//is1.squarefoot.com.hk" />
    <link rel="dns-prefetch" href="//v.squarefoot.com.hk" />
    
    <link rel="preload" href="/assets/js/bower_components/jquery/dist/jquery.min.js" as="script" />
    
    <link rel="preload" href="/vendor/fomantic/dist/semantic.min.js" as="script" />
    <link rel="preload" href="/assets/sqfoot/squarefoot_logo_202211.jpg" as="image" />
    
    <link rel="preload" href="/assets/js/jquery.blImageCenter.js" as="script" />
    <link rel="preload" href="/assets/photoswipe/photoswipe.min.js" as="script" />
    <link rel="preload" href="/assets/photoswipe/photoswipe-ui-default.min.js" as="script" />
    <link rel="preload" href="/assets/owlcarousel/owl.carousel.min.js" as="script" />
    <link rel="preload" href="/assets/js/lightbox.js" as="script" />
    
    <link rel="preload" as="font" href="/vendor/semantic/dist/themes/default/assets/fonts/icons.woff2" type="font/woff2" crossorigin="anonymous">
    <link rel="preload" as="font" href="/vendor/semantic/dist/themes/default/assets/fonts/brand-icons.woff2" type="font/woff2" crossorigin="anonymous">
    <link rel="preload" as="font" href="/vendor/semantic/dist/themes/default/assets/fonts/outline-icons.woff2" type="font/woff2" crossorigin="anonymous">
    <link rel="preload" as="font" href="/assets/css/fonts/lato_6.woff2" type="font/woff2" crossorigin="anonymous">
    <link rel="preload" as="font" href="/assets/css/fonts/lato_8.woff2" type="font/woff2" crossorigin="anonymous">
    
    
    
    <link rel="preload" as="style" href="/assets/css/main.css?20250319173600" >
    
    <link rel="preload" as="style" href="/vendor/fomantic/dist/semantic.min.css" >
    
    <link rel="preload" as="style" href="/assets/css/lightbox.css" >
    <link rel="preload" as="style" href="/assets/photoswipe/photoswipe.css" >
    <link rel="preload" as="style" href="/assets/photoswipe/default-skin/default-skin.css" >
    <link rel="preload" as="style" href="/assets/owlcarousel/assets/owl.carousel.min.css" >
    <link rel="preload" as="style" href="/assets/owlcarousel/assets/owl.theme.default.min.css" >
    
    <link rel="stylesheet" type="text/css" href="/vendor/fomantic/dist/semantic.min.css"><script src="/assets/js/bower_components/jquery/dist/jquery.min.js"></script><script defer src="/vendor/fomantic/dist/semantic.min.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/main.css?20250319173600"><link rel="stylesheet" type="text/css" href="/assets/css/main_sqfoot.css?20250319173600"><script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"WebSite","name":"5\u5e73\u65b9 Squarefoot","url":"https:\/\/www.squarefoot.com.hk","alternateName":["Squarefoot","5\u5e73\u65b9","\u4e94\u5e73\u65b9"]}</script>
        <link rel="stylesheet" type="text/css" href="/assets/css/homepage.css?20250319173600">
    
                <link rel="stylesheet" type="text/css" href="/assets/css/homepage_sqfoot.css?20250319173600">
        
        <link rel="stylesheet" type="text/css" href="/assets/css/new_properties_re.css?20250319173600">
        <link rel="stylesheet" type="text/css" href="/assets/css/property.css?20250319173600">
    <meta name="geo.region" content="HK"><meta name="geo.position" content="22.356514;114.13625300000001"><meta name="ICBM" content="22.356514, 114.13625300000001"><script defer type="text/javascript">
    
    ''
    
    //if("" == 'iOS')
    //var downloadAppUrl = 'https://itunes.apple.com/hk/app/28hse.com-xiang-gang-wu-wang/id902344223?mt=8';
    //else
    //var downloadAppUrl = 'https://play.google.com/store/apps/details?id=com.hse28.hse28_2';
    
    		var downloadAppUrl = "https://www.squarefoot.com.hk/appdownload";
    
    		var img_captcha = '';
    		var global_request_ajax_params = [];
    //var max_img_size = 20000000;
    		var max_img_size = 40 * 1048576; //20M
    		var total_max_img_size = 200 * 1048576; //200M
    		var doBaseactionurl = 'https://www.squarefoot.com.hk' + '/base/doaction';
    
    		var requestUri = "";
    		var is_mobile_hse28 = '0';
    		var var_platform = 'website';
    
    $(document).ready(function () {
    
        $("a.data_link").click(function(event){
    
            var url = $(this).attr('data-link');
            var target = $(this).attr('target');
    
            if (url) {
                if (target) {
                    window.open(url, target);
                } else {
                window.location.href = url;
                }
            }
        });
    
        if (var_platform === 'website' && typeof lightbox !== "undefined" && lightbox.option) {
    		lightbox.option({
    			'imageFadeDuration': 0,
    			'fadeDuration': 0,
    			'resizeDuration': 0,
    			'wrapAround': true,
    			'alwaysShowNavOnTouchDevices': true
    		});
    	}
    
    	if( "1"=="1")
    	{
    				requestUri = '/';
    	}
    
    	//if( '0'=='1' )
    		//$(".content_body_outer").addClass('safeip_hse28hk_color');
    
    	$(".downloadAppClose").click(function(event){
    		event.preventDefault();
    		$(".appDownloadItem").hide();
    	});
    
    	$(".downloadApp").click(function(event){
    		event.preventDefault();
    		window.location.href = downloadAppUrl;
    	});
    
    	$(".nodownloadApp").click(function(event){
    		request_ajax(doBaseactionurl, {action:'nodownloadApp'},null,[],true);
    	});
    
    
    	$(".closeMemberRail").click(function (event){
    		$(".memberRail").remove();
    	});
    
    
    	$(".langLabel").click(function(event){
    		event.preventDefault();
    
    		$('.languageModal').modal({
    		duration:0,
    		})
    		.modal('show');
    	});
    
    	$(".contactusBtn").unbind('click').click(function(event){
    
    			event.preventDefault();
    
    			let myFunction=function(data)
    			{
    				//console.dir(data);
    				let html = data.results;
    
    				if($('.mfooter').length >= 1)
    				{
    				    $('.mfooter').append(html);
    				}
    				else
    				    $('.footer').append(html);
    
    				$('.contactus_div').modal({
    				    duration:0,
    			    })
    				.modal('show');
    			}
    
    			if($(".contactus_div").length == 0) {
    				request_ajax(doBaseactionurl, {action:'getContactUs'},myFunction,[]);
    			}
                else
    			{
    				$('.contactus_div').modal({
    				duration:0,
    				})
    				.modal('show');
    			}
    	});
    
    	$(".termsBtn").click(function(event){
    		event.preventDefault();
    
    		let myFunction=function(data)
    		{
    			let html = data.results;
    			if( is_mobile )
    				$('.mfooter').append(html);
    			else
    			{
    				$('.mfooter').append(html);
    				$('.footer').append(html);
    			}
    
    			$('.terms_div').modal({
    			duration:0,
    			})
    			.modal('show');
    		}
    
    		if($(".terms_div").length == 0) {
    			request_ajax(doBaseactionurl, {action:'getTerms'},myFunction,[]);
    		}
    		else
    		{
    			$('.terms_div').modal({
    			duration:0,
    			})
    			.modal('show');
    		}
    	});
    
    	$(".privacyBtn").click(function(event){
    		event.preventDefault();
    
    		let myFunction=function(data)
    		{
    			//console.dir(data);
    			let html = data.results;
    
    			if( is_mobile )
    				$('.mfooter').append(html);
    			else
    			{
    				$('.footer').append(html);
    				$('.mfooter').append(html);
    			}
    
    			$('.privacy_div').modal({
    			duration:0,
    			})
    			.modal('show');
    		}
    
    		if($(".privacy_div").length == 0) {
    			request_ajax(doBaseactionurl, {
    				action:'getPrivacy',
    				privacy_mode: privacy_mode
    			},myFunction,[]);
    		}
    		else
    		{
    				$('.privacy_div').modal({
    				duration:0,
    			})
    				.modal('show');
    		}
    	});
    
    
    	$(".mheader_back").click(function(){
    		bind_mheader_back_btn( );
    	});
    
    	$("#mmenu_btn").click(function(){
    		$(".msidebar").sidebar('toggle');
    	});
    	
    	$("#msg_captcha_refresh_btn").click(function(event){
    		event.preventDefault();
    		refresh_captcha_img();
    		
    	});
    	
    	$(".overseadropdown").dropdown();
    
    	$('.logout_href').click(function (event){
    
    		event.preventDefault();
    
    		userLogout();
    	});
    
    	$(".langBtn Button").click(function(event){
    	event.preventDefault();
    
    	let attr = $(this).attr('attr');
    
    	var url = 'https://www.squarefoot.com.hk';
    
    	/*
    	if( '1'=='1' )
    	{
    		if(attr === 'cn')
    			url = url + '/cn';
    		else if(attr === 'tc')
    			url = url + '/tc';
    	}
    	 */
    	//else
    	//{
    		if(attr === 'cn')
    			url = url + '/cn';
    		else if(attr === 'en')
    			url = url + '/en';
    	//}
    
    	if( "1"=="1")
    	{
    		requestUri = requestUri.replace( "/cn/", "/" ).replace( "/tc/", "/" ).replace( "/en/", "/" );
    
    		url = url + requestUri;
    
    		request_ajax( doBaseactionurl, {action:'setLang', lang: attr }, function(){ window.location.href = url; }, [] );
    	}
    	else
    		window.location.href = url;
    
    });
    
    });
    
    function bind_mheader_back_btn( )
    {
    	if(document.referrer && (document.referrer.includes("28hse") || document.referrer.includes("squarefoot") )){
    		window.history.go(-1);
    		return false;
    	}
    	else
    	{
    		window.location.href = 'https://www.squarefoot.com.hk';
    	}
    }
    
    function userLogout()
    {
    	let logoutFunction =function ()
    	{
    		let myFunction = function(){
    		window.location.href = 'https://www.squarefoot.com.hk';
    		};
    
    		request_ajax('https://www.squarefoot.com.hk'+'/member/logout',{},myFunction,[]);
    	};
    
    	__alert('確認登出',true,logoutFunction,[]);
    }
    
    function refresh_captcha_img(wclick = true){
    	
    	//if(wclick)
    	//{
    	//	event.stopPropagation();
    	//	event.preventDefault();
    	//}
    				
    		   var request = $.ajax({
    		   				  url: '/base/doaction',
    		                  type: "POST",
    						  data: {action: 'refreshCaptcha'},
    		                  dataType: "json"
    		                });		
    		                
    		    request.done(function(msg_arr) {
    		
    					if(!__alert_custom_error(msg_arr))
    					{ 
    						var data = msg_arr['data'];
    						$("#img_captcha").attr('src',data);	  
    						img_captcha = data;
    					}
    								
    		    });		
    }
    
    function __alert_custom_error(msg_arr,call_back){
    	
        var status = msg_arr["status"]; //1 OK, 
        var result = msg_arr["result"]; //1 set OK, 2 have problem.
        var error_code = msg_arr["error_code"];
        var error_msg = msg_arr["error_msg"];
        var result_error_code = msg_arr["result_error_code"];
        var result_error_msg = msg_arr["result_error_msg"];
    	var debugs = msg_arr["debug"];
    	
    	var with_error = 0;
    	var my_error_message = "";
    	
    	var contacts_hse28_html = "<div><p></p><p>如有問題請使用下面的方法聯系我們:<br>Tel: 852-31523345<br>WhatsApp: 852-46117935<br>Email: squarefoothk@squarefoot.com.hk<br>Fax: 852-30208775 / 852-39094625</p></div>";
    
    	//$(".ui.dimmer").removeClass('active');
    
    	if(debugs)
    	debug_out(debugs);	
    	
    	if(status == 0)		        	
    	{
    		with_error = 1;
    		
    		if(error_code)
    		my_error_message += "錯誤碼: "+error_code+"\n";
    
    		if(error_msg)
    		my_error_message += "錯誤訊息: "+error_msg+"\n";
    		
    		my_error_message += contacts_hse28_html;
    	}
    	
    	if(result == 2 || result == 0)		        	
    	{
    		with_error = 1;
    		
    		if(result_error_code)
    		my_error_message += "錯誤碼: "+result_error_code+"\n";
    
    		if(result_error_msg)
    		my_error_message += "錯誤訊息: "+result_error_msg+"\n";
    		else
    		my_error_message += "錯誤訊息\n";
    	}
    	
    	if(with_error == 1 && my_error_message.length <= 0)
    	my_error_message = "錯誤";
    	
    	if(with_error == 1)
    	{
    		__alert_overlap_allow(my_error_message,false, call_back, []);
    		return 1;		
    	}
    	
    	return 0;
    }
    
    function __alert_overlap_allow(mymessage,wconfirm,mycallback,mycallback_args)
    {
    	$("#alert_div .words").html(mymessage);
    
    	if(wconfirm == true)
    	{
    		$(".actions.normal").hide();
    		$(".actions.wconfirm").show();
    	}
    	else
    	{
    		$(".actions.normal").show();
    		$(".actions.wconfirm").hide();
    	}
    
    	$('#alert_div').modal({
    		duration : 0,
    		allowMultiple: true,
    		closable  : true,
    		onDeny    : function(){
    			return true;
    		},
    		onApprove : function() {
    			//if(action == "removeSomeHistory")
    			//{
    			//  removeSomeHistory(var1);
    			//}
    			mycallback_args.push("confirm");
    			mycallback.apply(this,mycallback_args);
    			return true;
    		}
    	})
    	.modal('show');
    }
    
    function __alert(mymessage,wconfirm,mycallback,mycallback_args, mycallback_deny=null )
    {
    	$("#alert_div .words").html(mymessage);
    	
    	if(wconfirm == true)
    	{
    		$(".actions.normal").hide();
    		$(".actions.wconfirm").show();
    	}
    	else
    	{
    		$(".actions.normal").show();
    		$(".actions.wconfirm").hide();
    	}
    	
    	$('#alert_div').modal({
    	duration: 0,
    	allowMultiple: false,
    	closable  : true,
        onDeny    : function(){
    		if( mycallback_deny!==null )
    			mycallback_deny.apply(this);
          return true;
        },
        onApprove : function() {
    	  //if(action == "removeSomeHistory")
    	  //{
    		//  removeSomeHistory(var1);
    	  //}
    	  mycallback_args.push("confirm");
    	  mycallback.apply(this,mycallback_args);
          return true;
        }	
        })
    	.modal('show');		
    }
    
    function __alert_force_wait(mymessage,wconfirm,mycallback,mycallback_args)
    {
    	$("#alert_div .words").html(mymessage);
    
    	if(wconfirm == true)
    	{
    		$(".actions.normal").hide();
    		$(".actions.wconfirm").show();
    	}
    	else
    	{
    		$(".actions.normal").show();
    		$(".actions.wconfirm").hide();
    	}
    	
    	$(".actions.normal").hide();
    	$(".ui.cancel.button").hide();
    	$(".actions.wconfirm").show();
    	
    	$('#alert_div').modal({
        duration  : 0,
    	closable  : false,
        onDeny    : function(){
          return true;
        },
        onApprove : function() {
    	  //if(action == "removeSomeHistory")
    	  //{
    		//  removeSomeHistory(var1);
    	  //}
    	  mycallback_args.push("confirm");
    	  mycallback.apply(this,mycallback_args);
          return true;
        }	
        })
    	.modal('show');		
    }
    
    //Make a function to detect the browser is Chrome or not
    function isChromeBrowser() {
        var userAgent = window.navigator.userAgent;
    
        // Check for Chrome on Android
        var isAndroidChrome = /Chrome/.test(userAgent) && /Android/.test(userAgent);
    
        // Check for Chrome on iOS (CriOS)
        var isiOSChrome = /CriOS/.test(userAgent);
    
        return isAndroidChrome || isiOSChrome;
    }
    
    function is_hk_phone_no(phone){
    	var accept_first_digit = [2,3,4,5,6,7,8,9];
    	if( !phone || phone.length != 8 )
    		return false;
    
    	var init_digit = phone.substring(0, 1);
    
    
    	//if(init_digit != 4 && init_digit != 5 && init_digit != 6 && init_digit != 8 && init_digit != 9)
    	if( !accept_first_digit.includes( parseInt( init_digit ) ) )
    		return false;
    
    	return true;
    }
    
    function is_valid_wechat_id( wechat_id )
    {
    	if( !wechat_id )
    		return false;
    
    	var wechat_id_check = new RegExp( '^[a-zA-Z][a-zA-Z0-9_\\-]{5,19}$', 'i');
    
    	if( wechat_id_check.test( wechat_id ) )
    		return true;
    
    	return false;
    }
    
    function is_hk_mobile(phone){
    	var accept_first_digit = [4,5,6,8,9,7];
    	if( !phone || phone.length != 8 )
    	return false;
    	
    	var init_digit = phone.substring(0, 1);
    	
    	
    	//if(init_digit != 4 && init_digit != 5 && init_digit != 6 && init_digit != 8 && init_digit != 9)
    	if( !accept_first_digit.includes( parseInt( init_digit ) ) )
    	return false;	
    	
    	return true;	
    }
    
    function toast(text, duration) {
    
    	$('.toast-container').remove();
    
    	duration = duration || 1000;
    	var html = '<div class="toast-container"><div class="toast">'+text+'</div></div>';
    	$('body').append(html);
    	setTimeout(function() {
    		$('.toast-container').animate({opacity: 0}, duration/2, function() {
    			$('.toast-container').remove();
    		});
    	}, duration*2);
    }
    
    function removeSomeHistory( myitem , id)
    {
    	var removeLots = 30;
    	
    	if(myitem != null)
    	{
    		var existingItems = JSON.parse(localStorage.getItem(myitem));	
    
    		if(id || id === 0)
    		{
    			existingItems.splice(id, 1);
    			localStorage.setItem(myitem, JSON.stringify(existingItems));
    		}
    		else if(existingItems.length >= removeLots)
    		{
    			existingItems = existingItems.slice(0, existingItems.length - removeLots);
    			localStorage.setItem(myitem, JSON.stringify(existingItems));		
    		}
    	}
    }
    
    function storehistory( app, item, _name, _value, _remark, action_remove, isconfirm_remove_refresh_function, isconfirm_remove ){
    	
    	var limit = 100;
    	
    	if(item === "fav")
    	limit = 300;
    	else if(item === "property_search_conditions_buy" || item === "property_search_conditions_rent")
    	limit = 15;
    	else if(item === 'new-properties' )
    		limit = 15;
    	else if (item === 'investment')
    		limit = 15;
    	else if (item === 'estate_page')
    		limit = 15;
    	
    	//console.log(limit+'storehistory here'+app+'--'+item);
    	//if(__alert("test",true,'removeSomeHistory',app+'_'+item))
    	
    	//{
    	//	alert('can remove here');
    	//}
    	
    	if (typeof(Storage) !== "undefined" && window.localStorage) {
    		
    		var existingItems = JSON.parse(localStorage.getItem(app+'_'+item));
    		
    		if(item == "fav" && existingItems && existingItems.length >= limit && action_remove != true)
    		{
    			if(isconfirm_remove)
    			{
    				removeSomeHistory(app+'_'+item);
    				
    				//refresh to get the latest one after removal
    				existingItems = JSON.parse(localStorage.getItem(app+'_'+item));
    			}
    			else
    			{
    				
    				__alert('紀錄資料最大為 '+limit+' 筆,請按確認先刪除 30 筆舊紀錄',true,storehistory,[app, item, _name, _value, _remark, action_remove, isconfirm_remove_refresh_function]);
    				
    				return;
    			}
    		}
    		
    		if(existingItems)
    		{
    			//remove repeat item.
    			existingItems.forEach(function(item,index,object) {
    			    if(item.val == _value)
    				    object.splice(index,1);
    			});				
    		}
    		else
    			existingItems = [];
    		
    		if(!action_remove)
    		{ 
    			//add new item here
    			var datetime = new Date().getTime();//new Date().toLocaleString();
    			var newItem = {time: datetime, name: _name, val: _value, remark: _remark};
    			
    			existingItems.unshift(newItem);
    		}
    		
    		if(existingItems.length > limit && item != "fav")
    		existingItems = existingItems.slice(0, limit);
    		
    		localStorage.setItem(app+'_'+item, JSON.stringify(existingItems));
    		//localstorage[app][item]=value;	
    		if(isconfirm_remove && isconfirm_remove_refresh_function)
    		isconfirm_remove_refresh_function();		
    		
    		return true;
    
    	} else {
    	    // Sorry! No Web Storage support..
    	    return false;
    	    
    	}	
    }
    
    function readhistory( app, item, with_item_arr ){
    	
    	if (typeof(Storage) !== "undefined" && window.localStorage) {
    		
    		var existingItems = JSON.parse(localStorage.getItem(app+'_'+item));	
    		
    		if(!with_item_arr)	
    		return existingItems;
    		else
    		{
    			var result_Favs = [];
    			if(existingItems && existingItems.length >= 1)
    			{
    				existingItems.forEach(function(item){
    					var id = item['val'];
    					if(id)
    					{
    						result_Favs.push(id);
    					}
    				});
    			} 		
    		
    			return result_Favs;
    		}
    	} else {
    	    // Sorry! No Web Storage support..
    	    
    	}	
    }
    
    function validateEmail(email) {
        var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        return re.test(String(email).toLowerCase());
    }
    
    function deletehistory( app, item, reload_url ){
    	
    	if (typeof(Storage) !== "undefined" && window.localStorage && app && item) {
    		
    		localStorage.removeItem(app+'_'+item);
    		
    		if(reload_url && reload_url.length >= 1)
    		window.open(reload_url,"_self");
    		
    	}
    		
    }
    
    function goBack_page(){
    	MainContentManager.backSingleStep();
    }
    
    function refresh_the_page(){
    	MainContentManager.pageRefresh();
    }
    
    function reload_the_page(){
    	location.reload();
    }
    
    function request_ajax_sync(ajax_url,data_arr,mycallback,mycallback_args,silence,silence_error)
    {
    	var request = $.ajax({
    		url: ajax_url,
    		type: "POST",
    		async: false,
    		data: data_arr,
    		dataType: "json"
    	});
    
    	request.done(function(msg_arr) {
    
    		var status = msg_arr["status"];
    		var data = msg_arr["data"];
    		var result = msg_arr["result"];
    
    		if(silence_error !== true && __alert_custom_error(msg_arr))
    		{
    			$('.loadingDimmer').removeClass('active');
    			//with error
    			return false;
    		}
    
    		global_request_ajax_params = [ajax_url,data_arr,mycallback,mycallback_args];
    
    		if(mycallback && mycallback != false)
    		{
    			//if(data && 'results' in data && data['results'])
    			//mycallback_args.push(data['results']);
    			//else
    			if(result == 2)
    			{
    				data = {result_error_data:msg_arr['result_error_data'],result_error_msg:msg_arr['result_error_msg']};
    			}
    
    			mycallback_args.push(data);
    			mycallback.apply(this,mycallback_args);
    		}
    		else if (silence == true)
    		{
    			//do nothing
    		}
    		else
    		{
    			if(data && 'msg' in data && data['msg'])
    				__alert('This task has finished. Return msg:'+data['msg']+'.');
    			else
    				__alert('This task has finished. No return msg.');
    		}
    
    		return true;
    	});
    }
    
    function request_get_ajax(ajax_url,data_arr,mycallback,mycallback_args,silence,silence_error)
    {
       var request = $.ajax({
       				  url: ajax_url,
                      type: "GET",
    				  data: data_arr,
                      dataType: "json"
                    });
    
        request.done(function(msg_arr) {
    
            var status = msg_arr["status"];
            var data = msg_arr["data"];
    		var result = msg_arr["result"];
    
    		if(silence_error !== true && __alert_custom_error(msg_arr))
    		{
    			$('.loadingDimmer').removeClass('active');
    			//with error
    			return false;
    		}
    
    		global_request_ajax_params = [ajax_url,data_arr,mycallback,mycallback_args];
    
    		if(mycallback && mycallback != false)
    		{
    			//if(data && 'results' in data && data['results'])
    			//mycallback_args.push(data['results']);
    			//else
    			if(result == 2)
    			{
    				data = {result_error_data:msg_arr['result_error_data'],result_error_msg:msg_arr['result_error_msg']};
    			}
    
    			mycallback_args.push(data);
    			mycallback.apply(this,mycallback_args);
    		}
    		else if (silence == true)
    		{
    			//do nothing
    		}
    		else
    		{
    			if(data && 'msg' in data && data['msg'])
    			__alert('This task has finished. Return msg:'+data['msg']+'.');
    			else
    			__alert('This task has finished. No return msg.');
    		}
    
    	    return true;
        });
    }
    
    function request_ajax(ajax_url,data_arr,mycallback,mycallback_args,silence,silence_error)
    {
       var request = $.ajax({
       				  url: ajax_url,
                      type: "POST",
    				  data: data_arr,
                      dataType: "json"
                    });		
                    
        request.done(function(msg_arr) {
    		
            var status = msg_arr["status"];
            var data = msg_arr["data"];
    		var result = msg_arr["result"];
    
    		if(silence_error !== true && __alert_custom_error(msg_arr))
    		{
    			$('.loadingDimmer').removeClass('active');
    			//with error
    			return false;
    		}
    
    		global_request_ajax_params = [ajax_url,data_arr,mycallback,mycallback_args];
    
    		if(mycallback && mycallback != false)
    		{
    			//if(data && 'results' in data && data['results'])
    			//mycallback_args.push(data['results']);
    			//else
    			if(result == 2)
    			{
    				data = {result_error_data:msg_arr['result_error_data'],result_error_msg:msg_arr['result_error_msg']};
    			}
    
    			mycallback_args.push(data);
    			mycallback.apply(this,mycallback_args);
    		}
    		else if (silence == true)
    		{
    			//do nothing
    		}
    		else
    		{
    			if(data && 'msg' in data && data['msg'])
    			__alert('This task has finished. Return msg:'+data['msg']+'.');
    			else
    			__alert('This task has finished. No return msg.');
    		}
    		
    	    return true;
        });	
    }
    
    function _jsonParse(str){
    
    	//console.log(str);
    
    // preserve newlines, etc - use valid JSON
    	str = str.replace(/\\n/g, "\\n")
    		.replace(/\\'/g, "\\'")
    		.replace(/\\"/g, '\\"')
    		.replace(/\\&/g, "\\&")
    		.replace(/\\r/g, "\\r")
    		.replace(/\\t/g, "\\t")
    		.replace(/\\b/g, "\\b")
    		.replace(/\\f/g, "\\f");
    // remove non-printable and other non-valid JSON chars
    	str = str.replace(/[\u0000-\u0019]+/g,"");
    
    	try {
    		return !str || str == null ? '{}' : JSON.parse(str);
    	} catch (e) {
    		//console.log('Error to do the JSON.parase!');
    		//alert('Error to do the JSON.parase!');
    	}
    }
    
    //mainly for move of the pic item inside Pics
    function array_move(arr, old_index, new_index) {
    	if (new_index >= arr.length) {
    		var k = new_index - arr.length + 1;
    		while (k--) {
    			arr.push(undefined);
    		}
    	}
    	arr.splice(new_index, 0, arr.splice(old_index, 1)[0]);
    	return arr; // for testing
    };
    
    //words limit for some textarea inputs field.
    function __limits(obj, limit, target){
    	
    	var limit_org = limit;
    	
    	target.show();
    	
        var text = $(obj).val(); 
        
        //newline not count
    	if(text)
    	{
    		var length = text.replace(/\n/g, "").length;
    
    		if(length > limit){
    
    		   var length_newline = (text.match(/\n/g) || []).length;
    		   var limit_word = parseInt(limit) + parseInt(length_newline);
    		   $(obj).val(text.substr(0,limit_word));
    
    		   length = limit;
    		 } else { // alert the user of the remaining char. I do alert here, but you can do any other thing you like
    		 }
    
    		 target.html(''+length+''+'/'+limit_org);
        }
     }	
    
    
    Number.prototype.numberFormat = function(c, d, t){
    var n = this, 
        c = isNaN(c = Math.abs(c)) ? 2 : c, 
        d = d == undefined ? "." : d, 
        t = t == undefined ? "," : t, 
        s = n < 0 ? "-" : "", 
        i = String(parseInt(n = Math.abs(Number(n) || 0).toFixed(c))), 
        j = (j = i.length) > 3 ? j % 3 : 0;
       return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
    };
    String.prototype.replaceAll = function(search, replacement) {
        var target = this;
        return target.split(search).join(replacement);
    };
    
    /**
     * recursive to do the Jquery serializeArray
     */
    $.fn.serializeControls = function() {
    	var data = {};
    
    	function buildInputObject(arr, val) {
    		if (arr.length < 1)
    			return val;
    		var objkey = arr[0];
    		if (objkey.slice(-1) == "]") {
    			objkey = objkey.slice(0,-1);
    		}
    		var result = {};
    		if (arr.length == 1){
    			result[objkey] = val;
    		} else {
    			arr.shift();
    			var nestedVal = buildInputObject(arr,val);
    			result[objkey] = nestedVal;
    		}
    		return result;
    	}
    
    	$.each(this.serializeArray(), function() {
    		var val = this.value;
    		var c = this.name.split("[");
    		var a = buildInputObject(c, val);
    		$.extend(true, data, a);
    	});
    
    	return data;
    }
    
    function isJson(str) {
    	try {
    		JSON.parse(str);
    	} catch (e) {
    		return false;
    	}
    	return true;
    }
    
    function int2ip (ipInt) {
    	return ( (ipInt>>>24) +'.' + (ipInt>>16 & 255) +'.' + (ipInt>>8 & 255) +'.' + (ipInt & 255) );
    }
    
    function isTrue(value)
    {
    	if(value === 0 || value === '0' || value === false)
    		return 0;
    
    	if(value === 1 || value === '1' || value === true)
    		return 1;
    }
    
    /**
     * Clear modal before feed somem html content.
     */
    function clearPopUpModal()
    {
    	//remove all modals init already.
    	$(".ui.modals").children("div").not('#alert_div, .notRemovalModal').remove();
    }
    
    /**
     *
     * @param div_name
     * @param input_name_prefix
     * After the inserting of a pairs of input. Use this function to rename the input name with correct index.
     */
    function reNumber_input_arr_index(div_name,input_name_prefix) {
    	$("."+div_name).each(function(index) {
    		var prefix = input_name_prefix+"[" + index + "]";
    		$(this).find("input").each(function() {
    			var reg = new RegExp(input_name_prefix+"\[[0-9]+\]");
    			this.name = this.name.replace(reg, prefix);
    		});
    	});
    }
    
    function copyToClipboard(contentString) {
    	var $temp = $("<input>");
    	$("body").append($temp);
    	$temp.val(contentString).select();
    	document.execCommand("copy");
    	$temp.remove();
    }
    
    function gotourl(url)
    {
    	window.location.replace(url);
    }
    
    function isFacebookInAppBrowser() {
    	var ua = navigator.userAgent || navigator.vendor || window.opera;
    	return (ua.indexOf("FBAV") > -1);
    }
    
    function isSpider() {
        const userAgent = navigator.userAgent.toLowerCase();
    
        // List of common web crawlers
        const crawlers = [
            'googlebot',
            'bingbot',
            'yandexbot',
            'duckduckbot',
            'baiduspider',
            'slurp',
            'ia_archiver',
            'facebot',
            'twitterbot',
            'mj12bot',
            'ahrefsbot',
            'semrushbot',
            'dotbot',
            'petalbot'
        ];
    
        // Check if the user agent matches any of the known crawlers
        return crawlers.some(crawler => userAgent.includes(crawler));
    }
    
    function need_to_trigger_fav_btn( )
    {
    	var favBtnColor = 'yellow';
    	var favBtnStyle = 'star';
    	if( !$(".favheartBtn .icon").hasClass( favBtnColor ) )
    		return true;
    	else
    		return false;
    }
    
    function enable_fav_btn_only( )
    {
    	var favBtnColor = 'yellow';
    	var favBtnStyle = 'star';
    
    
    	if( $('.favheartBtn .icon').length )
    	{
    		if( $(".favheartBtn .icon").hasClass( favBtnColor ) )
    			return false;
    
    		if( $(".favheart.favheartBtn.action_link_app").length > 0 )
    			$(".favheart.favheartBtn.action_link_app").trigger('click');
    		else
    			$(".favheartBtn").trigger('click');
    	}
    	else if( $(".mfav").length )		//新盤 website
    	{
    		if( $('.mfav .icon').hasClass( favBtnColor ) )
    			return false;
    
    		$(".mfav").trigger('click');
    	}
    	else if( $(".mobile_fav").length )	//新盤 mobile
    	{
    		if( $('.mobile_fav .icon').hasClass( favBtnColor ) )
    			return false;
    
    		$(".mobile_fav").trigger('click');
    	}
    	else if( $(".fav_icon").length )
    	{
    		if( $('.fav_icon .icon').hasClass( favBtnColor ) )
    			return false;
    
    		$(".fav_icon").trigger('click');
    	}
    
    	return true;
    }
    function includesNonStrict(array, value) {
        return array.some(element => element == value);
    }
    
    ''</script>
    <link rel="stylesheet" type="text/css" href="/assets/css/lightbox.css"><script defer src="/assets/js/lightbox.js"></script></head>

    Squarefoot 5平方 - 香港優質樓盤 – 網上搵樓

    Recherche META Description de la page

    香港搵樓網,搜尋最新及最熱門屋苑、服務式住宅及獨立屋等樓盤。 提供單位面積、價格、成交記錄、平面圖、VR全景睇樓、以及最新樓市新聞和資訊。立即瀏覽squarefoot.com.hk [5平方] 尋找您的心水樓盤。

    Recherche META Keywords de la page

    租樓,租屋,租房,買屋,買樓,搵樓,樓盤,出售,樓盤搜尋,地產,業主,代理,自讓,住宅,車位,分租,短租,村屋,工商,商廈,店舖,獨立屋,套房,土地,農地,公屋

    UPDATE DOMAINES SET server='cloudflare',redirection='https://www.squarefoot.com.hk/',Status='200',err='',[TITRE]=N'Squarefoot 5平方 - 香港優質樓盤 – 網上搵樓',[DESCRIPTION]=N'香港搵樓網,搜尋最新及最熱門屋苑、服務式住宅及獨立屋等樓盤。 提供單位面積、價格、成交記錄、平面圖、VR全景睇樓、以及最新樓市新聞和資訊。立即瀏覽squarefoot.com.hk [5平方] 尋找您的心水樓盤。',[KEYWORDS]=N'租樓,租屋,租房,買屋,買樓,搵樓,樓盤,出售,樓盤搜尋,地產,業主,代理,自讓,住宅,車位,分租,短租,村屋,工商,商廈,店舖,獨立屋,套房,土地,農地,公屋' WHERE id=25103
  • 0

    Squarefoot 5平方 - 香港優質樓盤 – 網上搵樓 香港搵樓網,搜尋最新及最熱門屋苑、服務式住宅及獨立屋等樓盤。 提供單位面積、價格、成交記錄、平面圖、VR全景睇樓、以及最新樓市新聞和資訊。立即瀏覽squarefoot.com.hk [5平方] 尋找您的心水樓盤。 租樓 租屋 租房 買屋 買樓 搵樓 樓盤 出售 樓盤搜尋 地產 業主 代理 自讓 住宅 車位 分租 短租 村屋 工商 商廈 店舖 獨立屋 套房 土地 農地 公屋

  • 0. Squarefoot (10)
  • --------->0
  • 1. 5平方 (3)
  • --------->0
  • 2. - (1)
  • --------->0
  • 3. 香港優質樓盤 (6)
  • --------->0
  • 4. (1)
  • --------->0
  • 5. 網上搵樓 (4)
  • --------->0
  • 6. 香港搵樓網,搜尋最新及最熱門屋苑、服務式住宅及獨立屋等樓盤。 (30)
  • --------->0
  • 7. 提供單位面積、價格、成交記錄、平面圖、VR全景睇樓、以及最新樓市新聞和資訊。立即瀏覽squarefoot.com.hk (59)
  • --------->0
  • 8. [5平方] (5)
  • --------->0
  • 9. 尋找您的心水樓盤。 (9)
  • --------->0
  • 10. 租樓 (2)
  • --------->0
  • 11. 租屋 (2)
  • --------->0
  • 12. 租房 (2)
  • --------->0
  • 13. 買屋 (2)
  • --------->0
  • 14. 買樓 (2)
  • --------->0
  • 15. 搵樓 (2)
  • --------->0
  • 16. 樓盤 (2)
  • --------->0
  • 17. 出售 (2)
  • --------->0
  • 18. 樓盤搜尋 (4)
  • --------->0
  • 19. 地產 (2)
  • --------->0
  • 20. 業主 (2)
  • --------->0
  • 21. 代理 (2)
  • --------->0
  • 22. 自讓 (2)
  • --------->0
  • 23. 住宅 (2)
  • --------->0
  • 24. 車位 (2)
  • --------->0
  • 25. 分租 (2)
  • --------->0
  • 26. 短租 (2)
  • --------->0
  • 27. 村屋 (2)
  • --------->0
  • 28. 工商 (2)
  • --------->0
  • 29. 商廈 (2)
  • --------->0
  • 30. 店舖 (2)
  • --------->0
  • 31. 獨立屋 (3)
  • --------->0
  • 32. 套房 (2)
  • --------->0
  • 33. 土地 (2)
  • --------->0
  • 34. 農地 (2)
  • --------->0
  • 35. 公屋 (2)
  • --------->0
    INSERT INTO KEYWORDS (keyword,id_domaine) VALUES (N'Squarefoot',25103),(N'5平方',25103),(N'-',25103),(N'香港優質樓盤',25103),(N'–',25103),(N'網上搵樓',25103),(N'香港搵樓網,搜尋最新及最熱門屋苑、服務式住宅及獨立屋等樓盤。',25103),(N'提供單位面積、價格、成交記錄、平面圖、VR全景睇樓、以及最新樓市新聞和資訊。立即瀏覽squarefoot.com.hk',25103),(N'[5平方]',25103),(N'尋找您的心水樓盤。',25103),(N'租樓',25103),(N'租屋',25103),(N'租房',25103),(N'買屋',25103),(N'買樓',25103),(N'搵樓',25103),(N'樓盤',25103),(N'出售',25103),(N'樓盤搜尋',25103),(N'地產',25103),(N'業主',25103),(N'代理',25103),(N'自讓',25103),(N'住宅',25103),(N'車位',25103),(N'分租',25103),(N'短租',25103),(N'村屋',25103),(N'工商',25103),(N'商廈',25103),(N'店舖',25103),(N'獨立屋',25103),(N'套房',25103),(N'土地',25103),(N'農地',25103),(N'公屋',25103)