Turbolinks 加载事件在页面加载时不起作用

2024-04-09

我对当前默认 Turbolinks 推荐的加载事件有疑问:

document.addEventListener('turbolinks:load', function() {
  …
});

发生的情况是,当页面加载时,这不会在 Safari 上触发。因此我附加了Turbolinks.dispatch("turbolinks:load"); to application.js.

看起来效果很好。但在 Chrome 上,它确实会自动触发,所以最终发生的是双重触发turbolinks:load event.

我的第一个解决方法是开火turbolinks:load仅在非 Chrome 浏览器上。

但不知何故,即使在 Chrome 上,某些视图也不会触发turbolinks:load自动地。所以我最终也不得不在特定的视图上触发它。

我找到的最终解决方案是使用:

$(document).on('ready turbolinks:load', function() {
  …
});

这似乎解决了所有问题,因为它在首页加载或重新加载以及单击链接时触发。它也会在 Chrome 和 Safari 上触发。

有更好的方法来处理这个问题吗?

文档说第一个版本是正确的,但情况似乎并非如此。

我错过了什么吗?

(注意:使用 jQuery 对我来说并不是一个缺点,我知道我可以通过一些方法来实现它document.addEventListener)


正如评论中所指出的,您正在加载 Turbolinksasync。 Turbolinks 目前在异步加载时无法正常工作。所以目前最好的建议是删除async脚本标签中的属性,或使用defer反而。

Why?

Turbolinks 监听DOMContentLoaded第一次加载时触发的事件turbolinks:load。通过异步加载,脚本有可能完成加载/执行afterHTML 已被解析并且DOMContentLoaded被解雇了。在这种情况下,turbolinks:load不会被解雇。

目前有一个 GitHub 问题讨论了库实施的一些可能的解决方案:https://github.com/turbolinks/turbolinks/issues/281 https://github.com/turbolinks/turbolinks/issues/281

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Turbolinks 加载事件在页面加载时不起作用 的相关文章

  • 如何向 jQuery Tokeninput 添加占位符?

    如何将占位符添加到 jQuery Tokeninput 字段 一个正常的placeholder属性在这里不起作用 对于这样的输入
  • 限制文本区域中每行的字符数

    我整个周末都在寻找解决这个难题的方法 但尚未找到一个可以正常工作的解决方案 我想要实现的是限制文本区域中每行的字符数 不是相同地限制它们 而是我选择的每行不同的字符数 例如 我只想在我的文本区域中包含 4 行 第 1 2 和 3 行将限制为
  • 使用 Javascript 在 Imacros 中循环

    我如何使用 javascript 循环 imm imacros 脚本 我搜索了一下 发现了这个 for i 0 i lt n i iimPlay marconame iim 但当我使用它时 我的浏览器 Firefox 18 挂起 for i
  • 在浏览器中语音聊天? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们正在寻求建立一个小组 voice 使用服务器上的node js 在浏览器中聊天 这可能吗 如果您希望您的解决方案是基于服务器端和客
  • 将音频与视频流合并 Node.js

    我正在创建 YouTube 视频下载器并且正在使用ytdl core库 它无法下载带有音频的高质量视频 因为 youtube 将其放在另一个文件中 但我需要将其全部下载到一个文件中 我已经这样做了 app get download asyn
  • 禁用 JavaScript 中的右键单击

    当我尝试禁用右键单击时 它不起作用 我尝试使用下面的代码 document onclick function e console log e button if e button 2 e preventDefault return fals
  • Rails 4 单选按钮表单助手,true 不验证

    我在 needs dist 上附加了简单的是或否单选按钮 当我提交表单时选择 否 它工作得很好 但是当我选择 是 时 它会抛出验证错误吗 它仅在 needs dist gt true 时有效 Model validates presence
  • 响应式网格布局框架[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用模态表单 ajax 超出 HTMLFormElement.toString 的最大调用堆栈大小

    我想使用模态窗口中的 ajax 请求提交表单 单击此链接可打开该模式 a class btn btn primary i class fa fa edit i Write a review a 模态窗口 div class modal fa
  • ElectronJS ReferenceError:导航器未定义

    我正在尝试在电子上制作自定义标题栏 但是当我启动我的应用程序时 我遇到了 ReferenceError 导航器未定义 问题 请帮忙 这是我的 main js 中的代码片段 My Codes https i stack imgur com c
  • 如何使用 jQuery 向表中添加新行,并为其分配递增的 id

    我有一个现有的 HTML 表格 它是用户输入 GPS 点的表单的一部分 用户还可以选择上传 GPS 数据点 我想要一个用户可以按下的按钮 其中一些 Javascript 会向表中添加一个或多个新行 但新行必须继续增加表中使用的名称和 id
  • iframe 重新加载按钮

    我浏览了很多网站 但似乎没有一个能正常工作 或者我不明白它们 我想要一个刷新某个 iframe 的简单按钮 该按钮将位于父页面上 并且 iframe 名称为 Right 有很多方法可以做到这一点 假设这个iframe markup 我们可以
  • HTML colorpicker 发生变化时如何获取新值?

    我正在开发一个需要更改 HTML 颜色的网络应用程序canvas基于的价值观colorpicker 我有一个colorpicker在我需要获取的 HTML 中value从每次更新开始
  • v-file-input .click() 不是函数

    我试图以编程方式触发 v file input 的 click 事件 因为它在 Vuetify 的文档中 但它显示一个错误this refs imagePicker click is not a function我在这里错过了什么吗 代码重
  • Ruby/Rails - 如何创建类并从控制器访问它

    我一直在尝试使用一些不同的 gem 在 Rails 3 中显示谷歌地图 但遇到了一些问题 幸运的是我发现了这个https github com YouthTree bhm google maps https github com Youth
  • 是否可以使用打字稿映射类型来创建接口的非函数属性类型?

    所以我正在研究 Typescript 的映射类型 是否可以创建一个接口来包装另一种类型 从而从原始类型中删除函数 例如 interface Person name string age number speak void type Data
  • WebRTC:通道、轨道和流与 RTP SSRC 和 RTP 会话之间的关系

    来自 Mozilla 网站 https developer mozilla org en US docs Web API Media Streams API https developer mozilla org en US docs We
  • 如何让 Twilio 在hangup() 被触发时停止拨号?

    我一直在使用 twilio ruby gem 开发 Twilio 应用程序 但我陷入了一个部分 为呼叫构建 TwiML 响应 我拨打一些号码 以便他们也可以接听呼叫 def handle gather response Twilio Twi
  • 您如何看待引导模式触发器的相应回调?

    On 引导模态 http getbootstrap com javascript modals 我们知道我们可以为触发器绑定事件 例如show or hide using show shown hide hidden 但此事件绑定仅适用于一
  • 我可以使用 jQuery 动态创建文件(及其内容)吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这是我的 HTML 代码 ul li

随机推荐

  • 抓取和解析多页(aspx)表

    我正在尝试搜集有关灰狗比赛的信息 例如 我想刮http www gbgb org uk RaceCard aspx dogName Hardwick 20Serena http www gbgb org uk RaceCard aspx d
  • 如何在 R 中获取 AST 作为列表

    我有字符串 它描述数学公式 我想将其转换为有意义部分的列表 功能ast 确实知道如何解析它 将其显示为抽象语法树 但不返回 AST 我正在寻找一个返回树的函数 bb lt media urin A media urin B 2 lazyev
  • SLURM 每个节点提交多个任务?

    我发现了一些非常相似的问题 这些问题帮助我得到了一个似乎有效的脚本 但我仍然不确定我是否完全理解为什么 因此这个问题 我的问题 示例 在 3 个节点上 我想在每个节点上运行 12 个任务 总共 36 个任务 此外 每个任务都使用 OpenM
  • javascript 按子列表第二个条目对列表列表进行排序

    如何按最后一个元素的顺序对列表列表进行排序 这是迄今为止我最好的尝试 var mylist 1 c 3 a 5 b mylist sort function a b return a 1 b 1 我打电话给sort没有效果 并且mylist
  • CATextLayer 包裹了 sizeToFit?

    如果我设置textLayer wrapped YES 如何调整大小textLayer包含换行文本 即 我如何获得新的高度textLayer 基本上 我想要类似的东西 UILabel sizeToFit 您需要做的第一件事是获取文本的大小 值
  • 如何使用 Python/Glade 更改主窗口小部件?

    我对 GUI 编程或多或少是个新手 只是有一点点 Perl Tk 经验 我是 Python 新手 也是 Glade 新手 我想学习如何使用它们 我心中有一个程序 需要一个窗口 但该窗口的内容 小部件和所有内容 必须随着用户完成的每一步而改变
  • Model() 获得参数“nr_class”的多个值 - SpaCy 多分类模型(BERT 集成)

    您好 我正在致力于使用新的 SpaCy 模型实现多分类模型 5 类 en pytt bertbaseuncased lg 新管道的代码在这里 nlp spacy load en pytt bertbaseuncased lg textcat
  • Android Google Play 意图引荐来源网址

    我像这样启动 Google Play Intent intent new Intent Intent ACTION VIEW Uri parse market details id com example intent addFlags I
  • CSS 选择器的优先级是什么

    CSS 问题 如果两个不同的选择器应用于一个元素 谁会获胜 我知道这不应该发生 但我想调整遗留应用程序 而 CSS 却处于中间位置 The 血淋淋的细节 http www w3 org TR CSS21 cascade html casca
  • 在计算其他汇总统计数据的同时使用 n()

    我在使用以下方法准备汇总表时遇到问题dplyr基于以下数据集 set seed 1 df lt data frame rep sample c 2012 2016 10 replace T sample c Treat Control 10
  • 在本机反应中出现“无法读取 null 的属性‘pickAlgorithm’”错误

    我在运行时遇到错误npm install 错误是 npm ERR Cannot read property pickAlgorithm of null npm ERR A complete log of this run can be fo
  • 运行 nginx 的 django 服务器上的大型媒体文件出现 403 错误

    我正在使用 Nginx 和 Gunicorn 运行托管在 DigitalOcean 上的 Django 服务器 当我遇到 403 错误时 我尝试通过管理界面添加 2MB 图片 调查error log指示权限被拒绝 如下 2017 06 27
  • 在 Manjaro 上安装 MongoDB

    我在 Manjaro Linux 上安装 MongoDB 社区服务器时遇到困难 没有关于如何在基于 Arch 的系统上安装它的官方文档 并且 Pacman 在 AUR 存储库中找不到它 有人尝试过安装它吗 这是我安装时所做的 由于包装是无法
  • 如何仅使用位移位和逻辑操作将 unsigned int 加 1?

    我的作业 项目中有一个问题 仅使用以下方法将 1 添加到无符号整数位移位 and 逻辑运算符 函数中不应有任何 或 符号 我从前几天开始就在尝试 但还没有成功 到目前为止 我已经尝试过以下操作 int A B C lt lt 1 B C 有
  • 关闭 DataInputStream 也会关闭 FileInputStream 吗?

    FileInputStream fstream new FileInputStream someFile getPath DataInputStream in new DataInputStream fstream 如果我打电话in clo
  • Erlang TCP 套接字关闭

    为了学习 Erlang 我正在尝试实现一个基于gen tcp 不幸的是 我的代码似乎触发了一些有线行为 为了演示这个问题 我附上了我的实现的最小化版本 它足以重现该问题 无论 HTTP 请求是什么 它都只是传递静态 200 OK 当我尝试运
  • 使用 Java 以编程方式下载 CSV 文件

    场景 我用来研究股票数据的网站的页面上有一个 将数据导出到电子表格 的链接 将鼠标悬停在导出链接上时显示的 URL 的形式为http www stocksite com historical export php symbol C http
  • `std::sin` 最后一点是错误的

    为了提高效率 我正在将一些程序从 Matlab 移植到 C 两个程序的输出完全相同非常重要 我面临着此操作的不同结果 std sin 0 497418836818383950 0 477158760259608410 C sin 0 497
  • Spring aop拦截来自同一服务类的调用

    我有一个与中提到的相同的场景 Spring Transaction方法通过同一个类内的方法调用 不起作用 https stackoverflow com questions 3423972 spring transaction method
  • Turbolinks 加载事件在页面加载时不起作用

    我对当前默认 Turbolinks 推荐的加载事件有疑问 document addEventListener turbolinks load function 发生的情况是 当页面加载时 这不会在 Safari 上触发 因此我附加了Turb