Javascript Prism.js不使用Rails 4 TurboLink
我发现,当我将语法高亮显示与高亮显示结合使用时,其行为异常 当我第一次加载一个应该突出显示语法的页面时,Prism.js不会被触发,不会突出显示任何内容。重新加载同一页面后,Prism将启动并提升代码。在此之后,页面将保持高亮显示,除非我更改位置(转到根目录)并返回到它(在相同的场景之后) 当我从清单文件(Javascript Prism.js不使用Rails 4 TurboLink,javascript,ruby-on-rails-4,turbolinks,prism.js,Javascript,Ruby On Rails 4,Turbolinks,Prism.js,我发现,当我将语法高亮显示与高亮显示结合使用时,其行为异常 当我第一次加载一个应该突出显示语法的页面时,Prism.js不会被触发,不会突出显示任何内容。重新加载同一页面后,Prism将启动并提升代码。在此之后,页面将保持高亮显示,除非我更改位置(转到根目录)并返回到它(在相同的场景之后) 当我从清单文件(application.js)中删除Turbolinks时,一切正常(当然Turbolinks没有做任何事情) 我不想用 = link_to "Foo", blogs_path(blog),
application.js
)中删除Turbolinks时,一切正常(当然Turbolinks没有做任何事情)
我不想用
= link_to "Foo", blogs_path(blog), "data-no-turbolink" => true
因为我必须在每一个链接上使用它(每个博客都会有一些高级代码),所以TurboLink毫无意义
我试着使用像page:change
这样的东西,但是我对纯JavaScript很糟糕(Prism.js是纯js,我是jQuery垃圾)
有人知道如何告诉Turbolinks触发Prism.js语法highliting吗?我最近遇到了完全相同的问题,我找到的解决方法是在页面加载后重新运行Prism。我使用Turbolinks页面:load事件来触发这个 在咖啡脚本中:
$(document).on 'ready page:load', ->
Prism.highlightAll()
或者在普通JS中:
$(document).on('ready page:load', function() {
Prism.highlightAll();
});