我发现,当我使用Prism.js语法时,结合Turbolinks高亮显示的行为很奇怪。
当我第一次加载一个应该突出显示语法的页面时,Prism.js不会被触发,也不会突出显示任何内容。在重新加载相同的页面后,棱镜将启动并提高代码。页面将在此之后保持高亮显示,除非我更改了位置(转到root)并返回到它(在相同的场景之后)。
当我从清单文件(application.js)中删除Turbolinks时,一切正常(当然,Turbolinks没有做任何事情)
我不想用
= link_to "Foo", blogs_path(blog), "data-no-turbolink" => true 因为我必须在每一个链接上使用它(每个博客都会有一些代码被高举),因此根本没有任何意义。
我试着像page:change一样使用page:change,但是我对纯JavaScript (Prism.js是纯JS &我是jQuery迷)感到很糟糕。
那么,有谁知道如何让Turbolinks触发Prism.js语法高调呢?
发布于 2014-01-25 19:41:35
最近我遇到了同样的问题,我发现的修复方法是在页面加载后重新运行Prism。我使用Turbolinks页面:load事件来触发这个事件。
在咖啡本中:
$(document).on 'ready page:load', ->
Prism.highlightAll()或者在普通的JS中:
$(document).on('ready page:load', function() {
Prism.highlightAll();
});https://stackoverflow.com/questions/21278357
复制相似问题