{"id":1406,"date":"2026-06-04T22:34:51","date_gmt":"2026-06-05T06:34:51","guid":{"rendered":"https:\/\/freeadblockerbrowser.com\/?page_id=1406"},"modified":"2026-06-10T22:11:05","modified_gmt":"2026-06-11T06:11:05","slug":"recentcomments","status":"publish","type":"page","link":"https:\/\/freeadblockerbrowser.com\/?page_id=1406","title":{"rendered":""},"content":{"rendered":"\n<style data-wp-block-html=\"css\">\n.moreWrap {\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n}\n\n\/* =========================\n   Read More Button\n   ========================= *\/\n.moreWrap-read-more-btn {\n  margin-top: 15px;\n\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  align-self: center;\n\n  gap: 12px;\n\n  width: 220px;\n  padding: 14px 32px;\n\n  border: none;\n  border-radius: 15px;\n\n  background: linear-gradient(\n    180deg,\n    #e5e6f1 0%,\n    #d9dae8 100%\n  );\n\n  color: #111;\n  font-size: 22px;\n  font-weight: 500;\n\n  cursor: pointer;\n}\n\n.moreWrap-read-more-btn:disabled {\n  opacity: 0.7;\n  cursor: not-allowed;\n}\n\n.moreWrap-read-more-btn .icon {\n  font-size: 28px;\n}\n\n\/* =========================\n   Waterfall Container\n   ========================= *\/\n.moreWrap-waterfall-container {\n  width: 100%;\n\n  display: flex !important;\n  flex-direction: row !important;\n  flex-wrap: nowrap;\n\n  align-items: flex-start;\n  justify-content: center;\n\n  gap: 32px;\n\n  margin: 0 auto;\n  box-sizing: border-box;\n}\n\n\/* =========================\n   Waterfall Column\n   ========================= *\/\n.moreWrap-waterfall-column {\n  flex: 1 1 0;\n\n  min-width: 0;\n\n  display: flex;\n  flex-direction: column;\n\n  gap: 16px;\n}\n\n\/* =========================\n   Review Card\n   ========================= *\/\n.moreWrap-waterfall-review-card {\n  background: #fff;\n\n  border: 1px solid rgba(0, 0, 0, 0.08);\n\n  padding: 27px 34px;\n\n  box-sizing: border-box;\n\n  display: flex;\n  flex-direction: column;\n\n  gap: 22px;\n}\n\n.moreWrap-waterfall-review-card:hover {\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n}\n\n\/* =========================\n   Header\n   ========================= *\/\n.moreWrap-review-card-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n\n  gap: 18px;\n}\n\n.moreWrap-review-card-header img {\n  width: 56px;\n  height: 56px;\n\n  object-fit: contain;\n\n  flex-shrink: 0;\n}\n\n\/* \u9690\u85cf\u661f\u661f *\/\n.moreWrap-review-stars {\n  display: none;\n}\n\n\/* =========================\n   Content\n   ========================= *\/\n.moreWrap-review-content {\n  color: #2d2323;\n\n  font-size: 22.5px;\n  line-height: 1.5;\n\n  font-family: Inter, sans-serif;\n  font-weight: 400;\n\n  word-break: break-word;\n}\n\n\/* =========================\n   Footer\n   ========================= *\/\n.moreWrap-review-footer {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n\n  gap: 12px;\n}\n\n.moreWrap-review-author {\n  display: flex;\n  align-items: center;\n\n  gap: 11px;\n}\n\n.moreWrap-review-author img {\n  width: 40.5px;\n  height: 40.5px;\n\n  border-radius: 50%;\n\n  object-fit: cover;\n\n  flex-shrink: 0;\n}\n\n.moreWrap-review-author span {\n  color: #2d2323;\n\n  font-size: 18px;\n  font-family: Inter, sans-serif;\n  font-weight: 400;\n}\n\n.moreWrap-review-date {\n  color: #2d2323;\n\n  font-size: 18px;\n  font-family: Inter, sans-serif;\n  font-weight: 400;\n\n  opacity: 0.5;\n\n  text-align: right;\n\n  white-space: nowrap;\n}\n\n\/* =========================\n   \u56fa\u5b9a\u5361\u7247\u9ad8\u5ea6\n   ========================= *\/\n#moreWrap-recentWaterfall .moreWrap-waterfall-review-card {\n  min-height: 277px;\n}\n\n\/* =========================\n   Tablet\n   ========================= *\/\n@media (max-width: 1024px) {\n  .moreWrap-waterfall-container {\n    gap: 20px;\n  }\n\n  .moreWrap-review-content {\n    font-size: 18px;\n  }\n}\n\n\/* =========================\n   Mobile\n   ========================= *\/\n@media (max-width: 768px) {\n  .moreWrap-waterfall-container {\n    flex-direction: column !important;\n    gap: 16px;\n  }\n\n  .moreWrap-waterfall-column {\n    width: 100%;\n  }\n\n  .moreWrap-review-content {\n    font-size: 16px;\n  }\n\n  .moreWrap-read-more-btn {\n    width: 180px;\n    font-size: 18px;\n  }\n}\n#moreWrap-recentWaterfall {\n  display: flex;\n  gap: 16px;\n  align-items: flex-start;\n}\n\n.moreWrap-waterfall-column {\n  flex: 1;\n  display: flex;\n  flex-direction: column;\n  gap: 16px;\n}\n\n.waterfall-loading,\n.waterfall-end {\n  width: 100%;\n  text-align: center;\n  padding: 24px 0;\n  color: #999;\n  font-size: 14px;\n}\n\n.waterfall-loading {\n  display: none;\n  align-items: center;\n  justify-content: center;\n  gap: 10px;\n}\n\n.waterfall-end {\n  display: none;\n}\n\n.loading-spinner {\n  width: 16px;\n  height: 16px;\n  border: 2px solid #e5e5e5;\n  border-top-color: #666;\n  border-radius: 50%;\n  animation: waterfall-spin 0.8s linear infinite;\n}\n\n@keyframes waterfall-spin {\n  to {\n    transform: rotate(360deg);\n  }\n}\n\n@media (max-width: 768px) {\n        #moreWrap-recentWaterfall {\n                       flex-direction: column;\n        padding: 25px;\n        }\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\nlet page = 1;\nlet loading = false;\nlet hasMore = true;\nfunction formatDate(dateStr) {\n  const date = new Date(dateStr.replace(' ', 'T'));\n\n  return date.toLocaleDateString('en-US', {\n    year: 'numeric',\n    month: 'long',\n    day: 'numeric'\n  });\n}\nconst PAGE_SIZE = 9;\nfunction getBrowserLanguage() {\n  return navigator.language || navigator.userLanguage || 'en-US'\n}\n\/\/ \u6bcf\u4e2a\u7011\u5e03\u6d41\u5bb9\u5668\u72ec\u7acb\u7ef4\u62a4\u5217\nconst waterfallColumnsMap = {};\n\nfunction showLoading() {\n  const loadingEl =\n    document.getElementById(\n      'waterfallLoading'\n    );\n\n  if (loadingEl) {\n    loadingEl.style.display = 'flex';\n  }\n}\n\nfunction hideLoading() {\n  const loadingEl =\n    document.getElementById(\n      'waterfallLoading'\n    );\n\n  if (loadingEl) {\n    loadingEl.style.display = 'none';\n  }\n}\n\nfunction showEnd() {\n  const endEl =\n    document.getElementById(\n      'waterfallEnd'\n    );\n\n  if (endEl) {\n    endEl.style.display = 'block';\n  }\n}\n\nasync function loadData() {\n  if (loading || !hasMore) return;\n\n  loading = true;\n\n  showLoading();\n\n  try {\n    const currentPage = page;\n\n    const res = await fetch(\n      'https:\/\/config-fab-api.freeadblockerbrowser.com\/gp\/review\/push\/list',\n      {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application\/json'\n        },\n        body: JSON.stringify({\n          \/\/ language: getBrowserLanguage(),\n          pageNum: currentPage,\n          pageSize: PAGE_SIZE,\n          baseInfo: {\n            localZone: 0,\n            locale: getBrowserLanguage(),\n            packageName:\n              'com.hsv.freeadblockerbrowser',\n            versionCode: 20008,\n            ccode: getBrowserLanguage(),\n            androidId: '21',\n            clientId: '123456789'\n          }\n        })\n      }\n    );\n\n    const result = await res.json();\n\n    console.log(\n      `page ${currentPage} result:`,\n      result\n    );\n\n    const list =\n      result?.data?.list || [];\n\n    \/\/ \u6ca1\u6709\u6570\u636e\n    if (!list.length) {\n      hasMore = false;\n      showEnd();\n      return;\n    }\n\n    renderWaterfall(\n      'moreWrap-recentWaterfall',\n      list\n    );\n\n    \/\/ \u6210\u529f\u540e\u518d\u589e\u52a0\u9875\u7801\n    page++;\n\n    \/\/ \u6700\u540e\u4e00\u9875\n    if (list.length < PAGE_SIZE) {\n      hasMore = false;\n      showEnd();\n    }\n  } catch (error) {\n    console.error(\n      'loadData error:',\n      error\n    );\n  } finally {\n    hideLoading();\n    loading = false;\n  }\n}\n\nfunction createStars(rating) {\n  const fullStar =\n    '<svg style=\"width:1em;height:1em\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1024 1024\"><path fill=\"currentColor\" d=\"M313.6 924.48a70.4 70.4 0 0 1-74.152-5.365 70.4 70.4 0 0 1-27.992-68.875l37.888-220.928L88.96 472.96a70.4 70.4 0 0 1 3.788-104.225A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 100.246-28.595 70.4 70.4 0 0 1 25.962 28.595l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z\"><\/path><\/svg>';\n\n  const emptyStar =\n    '<svg style=\"width:1em;height:1em\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1024 1024\"><path fill=\"currentColor\" d=\"m512 747.84 228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72z\"><\/path><\/svg>';\n\n  return (\n    fullStar.repeat(rating) +\n    emptyStar.repeat(\n      Math.max(0, 5 - rating)\n    )\n  );\n}\n\nfunction getWaterfallColumns(\n  container,\n  idName\n) {\n  if (waterfallColumnsMap[idName]) {\n    return waterfallColumnsMap[idName];\n  }\n\n  const cols = [];\n\n  for (let i = 0; i < 3; i++) {\n    const col =\n      document.createElement('div');\n\n    col.className =\n      'moreWrap-waterfall-column';\n\n    container.appendChild(col);\n\n    cols.push(col);\n  }\n\n  waterfallColumnsMap[idName] = cols;\n\n  return cols;\n}\n\nfunction renderWaterfall(\n  idName,\n  data\n) {\n  const container =\n    document.getElementById(idName);\n\n  if (!container) return;\n\n  const columns =\n    getWaterfallColumns(\n      container,\n      idName\n    );\n\n  data.forEach(review => {\n    const rating =\n      review.rating || 5;\n\n    const card =\n      document.createElement('div');\n\n    card.className =\n      'moreWrap-waterfall-review-card';\n\n    card.innerHTML = `\n      <div class=\"moreWrap-review-card-header\">\n        <img decoding=\"async\"\n          src=\"${review.platformUrl || ''}\"\n          alt=\"\"\n          loading=\"lazy\"\n        \/>\n\n        <div class=\"moreWrap-review-stars\">\n          ${createStars(rating)}\n        <\/div>\n      <\/div>\n\n      <div class=\"moreWrap-review-content\">\n        ${review.content || ''}\n      <\/div>\n\n      <div class=\"moreWrap-review-footer\">\n        <div class=\"moreWrap-review-author\">\n          <img decoding=\"async\"\n            src=\"${review.avatarUrl || ''}\"\n            alt=\"${review.name || ''}\"\n            loading=\"lazy\"\n          \/>\n\n          <span>\n            ${review.name || ''}\n          <\/span>\n        <\/div>\n\n        <div class=\"moreWrap-review-date\">\n          ${formatDate(review.reviewDate)|| ''}\n        <\/div>\n      <\/div>\n    `;\n\n    const shortestColumn =\n      columns.reduce(\n        (prev, current) =>\n          prev.offsetHeight <=\n          current.offsetHeight\n            ? prev\n            : current\n      );\n\n    shortestColumn.appendChild(card);\n  });\n}\n\nlet scrollRaf = null;\n\nfunction handleScroll() {\n  if (scrollRaf) return;\n\n  scrollRaf =\n    requestAnimationFrame(() => {\n      scrollRaf = null;\n\n      if (\n        loading ||\n        !hasMore\n      ) {\n        return;\n      }\n\n      const scrollTop =\n        window.pageYOffset ||\n        document.documentElement\n          .scrollTop;\n\n      const windowHeight =\n        window.innerHeight;\n\n      const documentHeight =\n        document.documentElement\n          .scrollHeight;\n\n      const threshold = 300;\n\n      if (\n        scrollTop +\n          windowHeight >=\n        documentHeight -\n          threshold\n      ) {\n        loadData();\n      }\n    });\n}\n\ndocument.addEventListener(\n  'DOMContentLoaded',\n  () => {\n    window.addEventListener(\n      'scroll',\n      handleScroll,\n      {\n        passive: true\n      }\n    );\n\n    loadData();\n  }\n);\n<\/script>\n\n<div class=\"moreWrap\">\n<div id=\"moreWrap-recentWaterfall\"><\/div>\n\n<div id=\"waterfallLoading\" class=\"waterfall-loading\">\n  <span class=\"loading-spinner\"><\/span>\n  <span>Loading more reviews&#8230;<\/span>\n<\/div>\n\n<div id=\"waterfallEnd\" class=\"waterfall-end\">\n  No more reviews\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Loading more reviews&#8230; No more reviews<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1406","page","type-page","status-publish","hentry"],"blocksy_meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>- FAB Adblocker<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/freeadblockerbrowser.com\/?page_id=1406\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"- FAB Adblocker\" \/>\n<meta property=\"og:description\" content=\"Loading more reviews&#8230; No more reviews\" \/>\n<meta property=\"og:url\" content=\"https:\/\/freeadblockerbrowser.com\/?page_id=1406\" \/>\n<meta property=\"og:site_name\" content=\"FAB Adblocker\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61580473396307\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-11T06:11:05+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@FBrowser57799\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/freeadblockerbrowser.com\/?page_id=1406\",\"url\":\"https:\/\/freeadblockerbrowser.com\/?page_id=1406\",\"name\":\"- FAB Adblocker\",\"isPartOf\":{\"@id\":\"https:\/\/freeadblockerbrowser.com\/#website\"},\"datePublished\":\"2026-06-05T06:34:51+00:00\",\"dateModified\":\"2026-06-11T06:11:05+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/freeadblockerbrowser.com\/?page_id=1406\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/freeadblockerbrowser.com\/#website\",\"url\":\"https:\/\/freeadblockerbrowser.com\/\",\"name\":\"FAB Adblocker\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/freeadblockerbrowser.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/freeadblockerbrowser.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/freeadblockerbrowser.com\/#organization\",\"name\":\"FAB Adblocker\",\"url\":\"https:\/\/freeadblockerbrowser.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/freeadblockerbrowser.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/test-wp.freeadblockerbrowser.com\/wp-content\/uploads\/2026\/02\/FreeAdblockerBrowser.jpeg\",\"contentUrl\":\"https:\/\/test-wp.freeadblockerbrowser.com\/wp-content\/uploads\/2026\/02\/FreeAdblockerBrowser.jpeg\",\"width\":594,\"height\":594,\"caption\":\"FAB Adblocker\"},\"image\":{\"@id\":\"https:\/\/freeadblockerbrowser.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/profile.php?id=61580473396307\",\"https:\/\/x.com\/FBrowser57799\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"- FAB Adblocker","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/freeadblockerbrowser.com\/?page_id=1406","og_locale":"en_US","og_type":"article","og_title":"- FAB Adblocker","og_description":"Loading more reviews&#8230; No more reviews","og_url":"https:\/\/freeadblockerbrowser.com\/?page_id=1406","og_site_name":"FAB Adblocker","article_publisher":"https:\/\/www.facebook.com\/profile.php?id=61580473396307","article_modified_time":"2026-06-11T06:11:05+00:00","twitter_card":"summary_large_image","twitter_site":"@FBrowser57799","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/freeadblockerbrowser.com\/?page_id=1406","url":"https:\/\/freeadblockerbrowser.com\/?page_id=1406","name":"- FAB Adblocker","isPartOf":{"@id":"https:\/\/freeadblockerbrowser.com\/#website"},"datePublished":"2026-06-05T06:34:51+00:00","dateModified":"2026-06-11T06:11:05+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/freeadblockerbrowser.com\/?page_id=1406"]}]},{"@type":"WebSite","@id":"https:\/\/freeadblockerbrowser.com\/#website","url":"https:\/\/freeadblockerbrowser.com\/","name":"FAB Adblocker","description":"","publisher":{"@id":"https:\/\/freeadblockerbrowser.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/freeadblockerbrowser.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/freeadblockerbrowser.com\/#organization","name":"FAB Adblocker","url":"https:\/\/freeadblockerbrowser.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/freeadblockerbrowser.com\/#\/schema\/logo\/image\/","url":"https:\/\/test-wp.freeadblockerbrowser.com\/wp-content\/uploads\/2026\/02\/FreeAdblockerBrowser.jpeg","contentUrl":"https:\/\/test-wp.freeadblockerbrowser.com\/wp-content\/uploads\/2026\/02\/FreeAdblockerBrowser.jpeg","width":594,"height":594,"caption":"FAB Adblocker"},"image":{"@id":"https:\/\/freeadblockerbrowser.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61580473396307","https:\/\/x.com\/FBrowser57799"]}]}},"_links":{"self":[{"href":"https:\/\/freeadblockerbrowser.com\/index.php?rest_route=\/wp\/v2\/pages\/1406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/freeadblockerbrowser.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/freeadblockerbrowser.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/freeadblockerbrowser.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/freeadblockerbrowser.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1406"}],"version-history":[{"count":36,"href":"https:\/\/freeadblockerbrowser.com\/index.php?rest_route=\/wp\/v2\/pages\/1406\/revisions"}],"predecessor-version":[{"id":1450,"href":"https:\/\/freeadblockerbrowser.com\/index.php?rest_route=\/wp\/v2\/pages\/1406\/revisions\/1450"}],"wp:attachment":[{"href":"https:\/\/freeadblockerbrowser.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}