javascript scratchblocks 方形空间

标签 javascript squarespace mit-scratch

我想在我的 Squarespace 网站上使用 Scratchblocks(一种从文本列表中呈现可视化 Scratch 代码块的工具,on GitHub)。我遇到的问题是,暂存 block 从未在第一次加载时呈现 - 但仅在刷新后呈现。

这是在标题中(在特定博客的标题中设置):

<script src="https://scratchblocks.github.io/js/scratchblocks-v3.1-min.js""></script>

然后我想我需要在页面末尾调用这个函数 - 我已经把它放在页脚中了:

scratchblocks.renderMatching('pre.blocks');

注意:当我查看源代码时,我在页面末尾看到了两次这个 JavaScript。不确定那里发生了什么。

这是我网站上的一个示例,它仅在刷新后才呈现暂存 block 。 [更新 - 按照下面提供的修复,这现在第一次呈现,据我所知每次都呈现。] [ http://www.glennbroadway.com/coding-zone/2017/4/6/simple-collisions-in-scratch] 2

这是其他人使用它并且它正常工作的示例。我已经检查了来源,但我无法弄清楚他们是怎么做到的。 https://codeclubprojects.org/en-GB/scratch/memory/

我还尝试了 stackoverflow 上其他地方列出的所有不同方法,以便仅在 HTML 完成后加载 javascript。我无法让它们中的任何一个工作 - 但我认为问题与 Squarespace 有关,我只是不具备解决问题​​的知识。

如有任何帮助,我们将不胜感激。

最佳答案

在 Squarespace 中,当您的自定义 Javascript 仅在页面刷新后工作时,它很可能与 Squarespace's AJAX loading 有关。 :

Occasionally, Ajax may conflict with embedded custom code or anchor links. Ajax can also interfere with site analytics, logging hits on the first page only.

您可以为您的模板禁用 AJAX。或者,查看此处概述的其他方法:https://stackoverflow.com/a/42604055/5338581包括:

window.addEventListener("mercury:load", function(){
   // do stuff
});

此外,我通常建议将自定义代码放在“页脚”代码注入(inject)区域,除非您有特殊原因不这样做。

关于javascript scratchblocks 方形空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44567075/

相关文章:

html - 避免图像堆叠在移动网站上

javascript - 无法通过 jQuery 更改按钮文本

javascript - 是否可以在没有身份验证对话框的情况下检测用户是否喜欢页面选项卡中的 Facebook 页面?

javascript - NodeJS 中的缩进式多行日志记录

javascript - 正则表达式需要包含加号

javascript - 你不知道JS : Up & Going - example problem

css - Squarespace 使用 CSS 从主导航中删除下拉菜单

loops - 为什么不能在Scratch中循环播放音乐?

mit-scratch - 如何在 Scratch 中创建云变量