Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Prism.js不使用Rails 4 TurboLink_Javascript_Ruby On Rails 4_Turbolinks_Prism.js - Fatal编程技术网

Javascript Prism.js不使用Rails 4 TurboLink

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),

我发现,当我将语法高亮显示与高亮显示结合使用时,其行为异常

当我第一次加载一个应该突出显示语法的页面时,Prism.js不会被触发,不会突出显示任何内容。重新加载同一页面后,Prism将启动并提升代码。在此之后,页面将保持高亮显示,除非我更改位置(转到根目录)并返回到它(在相同的场景之后)

当我从清单文件(
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();
});