gpt4 book ai didi

javascript - 如何在特定页面中禁用 Turbolinks?

转载 作者:行者123 更新时间:2023-12-03 12:28:02 27 4
gpt4 key购买 nike

我的脚本仅在刷新页面时才起作用,因此我尝试仅针对该页面禁用 Turbolinks。下面的代码不起作用。但是,如果我将“data-no-turbolink”属性直接添加到 application.html.erb 中的 body 标记,它就可以工作。如何在我的 View 中禁用 Turbolinks?我已按照此处发布的解决方案 Rails 4: disable Turbolinks in a specific page但我无法让它工作。

我安装了 gem 'jquery-turbolinks'。

策略.html.erb

<% content_for :body do %>
<% if controller.controller_name == 'pages' && controller.action_name == 'policy' %>
<body data-no-turbolink="true">
<% end %>
<% end %>

<div class="row">
<div class="small-12 medium-8 large-7 columns end">
<a href="//www.com/" class="nostyle" title="Policy">Policy</a>
<script>(function (w,d) {var loader = function () {var s = d.createElement("script"), tag = d.getElementsByTagName("script")[0]; s.src = "//cdn.java.com/java.js"; tag.parentNode.insertBefore(s,tag);}; if(w.addEventListener){w.addEventListener("load", loader, false);}else if(w.attachEvent){w.attachEvent("onload", loader);}else{w.onload = loader;}})(window, document);
</script>
</div>
</div>

最佳答案

您可以在布局中使用此 oneliner:

<body <%= "data-no-turbolinks='true'".html_safe if controller_name=="pages" && action_name=="policy" %>>

但是我主要使用的另一种方法是将这段代码放入指向该页面的链接中......

因此,假设您的路线命名为 :policy , 你应该做这个:
<%= link_to "Policy", policy_path, :"data-no-turbolink" => true %>

好久不见,这里有更新

最近开始使用 turbolinks 5.0 beta , 经过:
gem 'turbolinks', '~> 5.0.0.beta'

它变得容易得多...全部 document ready javascript 被加载,没问题...您所要做的就是为 load 事件添加一个监听器。
$(document).on('turbolinks:load', named_function );
var named_function = function() {
// thinks to do on document load
}

您不必同时添加
$(document).ready(function (){
// stuff
});

或者
$(document).ready(named_function);

因为 Turbolinks将优雅地退回到 document load如果页面是硬加载的。

关于javascript - 如何在特定页面中禁用 Turbolinks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27195019/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com