gpt4 book ai didi

javascript - 如何防止 Backbone 应用程序中的后退按钮重新加载页面

转载 作者:行者123 更新时间:2023-11-28 07:13:54 25 4
gpt4 key购买 nike

我有一个后端带有 Rails 的 Backbone 应用程序。假设您在页面 http://localhost:3000/#home然后转到http://localhost:3000/#collection 。当用户单击“后退”按钮时,我希望其行为与单击 http://localhost:3000/#home 的链接完全相同。或者在地址栏中输入此 URL 并按 Enter。

但是,使用“后退”按钮发生的情况是 <script> 中的代码再次执行index.html中的标签:

<script>
$(document).ready(function () {
AudioFileApp.initialize();
});
</script>

因此,我的 View 无法正确创建(就像您只需输入 URL 并按 Enter 键一样)。我怀疑这个问题与 Turbolinks/Backbone/Rails 问题有关,因为它解决了我在 history already started 上遇到的问题。错误:https://github.com/codebrew/backbone-rails/issues/134 。但是,我在重新初始化时仍然遇到问题,作为初学者,我完全被难住了。

有没有办法确保“后退”的行为就像通过链接或地址栏访问上一页一样?

这里是实际的初始化方法(如果有帮助的话):

initialize: function() {
var router = new AudioFileApp.Routers.Router({
$rootEl: $('#main'),
currentUser: new AudioFileApp.Models.User({ id: CURRENT_USER_ID })
});

var navbar = new AudioFileApp.Views.NavbarView();
$('#navbar').html(navbar.render().$el);

var audioPlayer = new AudioFileApp.Views.AudioPlayer();
$('#audio-player').html(audioPlayer.render().$el);

if (!Backbone.history.started) {
Backbone.history.start();
}

// Listen for Back button click
$(document).on('page:load', function () {
Backbone.history.stop();
Backbone.history.start();
});
}

最佳答案

关于javascript - 如何防止 Backbone 应用程序中的后退按钮重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31041085/

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