如果部分中的摘要块为空,则隐藏 Squarespace 页面部分
Hide Squarespace page sections if summary block in section is empty
您好,我正在尝试解决一个独特的 Squarespace 问题。
我正在构建一个客户站点,该站点将通过带有标签过滤器的摘要块向页面提供内容。摘要块包含在提供摘要块内容的标题和描述的页面部分中。如果摘要块没有 return 任何内容,我想隐藏包含标题、描述和摘要块的页面部分。
我的 Java 脚本很生疏!是否有任何支持人员可以帮助我开发此脚本?
提前致谢!
像这样的东西,通过站点范围的代码注入插入应该可以解决问题:
<script>
document.addEventListener("DOMContentLoaded", function() {
var summarySectionIds = [
"5fa5f5230814705318de86d4",
"5fb3d5c28ae3d9089a29f66f"
]
var i, s, sb;
if (document.body.classList.contains("sqs-edit-mode")) {
return;
}
i = summarySectionIds.length;
while(i--) {
s = document.querySelector("[data-section-id='" + summarySectionIds[i] + "']");
if (!s) {
continue;
}
sb = s.getElementsByClassName("sqs-block-summary-v2");
if (sb.length == 0) {
s.style.display = "none";
}
}
});
</script>
请注意,上述解决方案要求您获取您希望其中包含摘要块的每个部分的部分 ID,并将其添加到数组 summarySectionIds
。这意味着您必须在添加新的摘要块部分时更新代码中的这个区域。
据我所知,这是必要的,因为 Squarespace 删除了摘要块的任何痕迹(如果它是空的)。
另一种选择是确保您始终以完全相同的方式(使用 Squarespace 的布局列)布置包含摘要块的部分,并且只将该布局用于摘要块部分。然后您可以通过它们的 HTML 来识别摘要块部分,而不是维护一个 ID 列表。但我的看法是,Squarespace 的“布局引擎”太古怪了,你很难确保它每次的布局都一样,更何况客户也很难做到这一点。
但是,您可以想出一些其他的“技巧”来使用空的 Markdown 或代码块或类似无害的东西来识别这些部分,比如您将空的 div 和 class在 Code/Markdown 块内。在任何情况下,上面代码中的逻辑都是相似的,但会以不同方式标识部分。
您好,我正在尝试解决一个独特的 Squarespace 问题。
我正在构建一个客户站点,该站点将通过带有标签过滤器的摘要块向页面提供内容。摘要块包含在提供摘要块内容的标题和描述的页面部分中。如果摘要块没有 return 任何内容,我想隐藏包含标题、描述和摘要块的页面部分。
我的 Java 脚本很生疏!是否有任何支持人员可以帮助我开发此脚本?
提前致谢!
像这样的东西,通过站点范围的代码注入插入应该可以解决问题:
<script>
document.addEventListener("DOMContentLoaded", function() {
var summarySectionIds = [
"5fa5f5230814705318de86d4",
"5fb3d5c28ae3d9089a29f66f"
]
var i, s, sb;
if (document.body.classList.contains("sqs-edit-mode")) {
return;
}
i = summarySectionIds.length;
while(i--) {
s = document.querySelector("[data-section-id='" + summarySectionIds[i] + "']");
if (!s) {
continue;
}
sb = s.getElementsByClassName("sqs-block-summary-v2");
if (sb.length == 0) {
s.style.display = "none";
}
}
});
</script>
请注意,上述解决方案要求您获取您希望其中包含摘要块的每个部分的部分 ID,并将其添加到数组 summarySectionIds
。这意味着您必须在添加新的摘要块部分时更新代码中的这个区域。
据我所知,这是必要的,因为 Squarespace 删除了摘要块的任何痕迹(如果它是空的)。
另一种选择是确保您始终以完全相同的方式(使用 Squarespace 的布局列)布置包含摘要块的部分,并且只将该布局用于摘要块部分。然后您可以通过它们的 HTML 来识别摘要块部分,而不是维护一个 ID 列表。但我的看法是,Squarespace 的“布局引擎”太古怪了,你很难确保它每次的布局都一样,更何况客户也很难做到这一点。
但是,您可以想出一些其他的“技巧”来使用空的 Markdown 或代码块或类似无害的东西来识别这些部分,比如您将空的 div 和 class在 Code/Markdown 块内。在任何情况下,上面代码中的逻辑都是相似的,但会以不同方式标识部分。