使用Backbone.js处理浏览器历史记录
Using Backbone.js to handle browser history
我正在尝试使用Backbone.js来处理浏览器历史记录。我没有设置视图/模型,因为我不想让它处理这个问题,可能正因为如此,我无法让它正常工作。
此时,我的页面正在更改url。类似:
domain.com/services
domain.com/products
domain.com/contact
domain.com/gallery
domain.com/gallery/photo1
问题是:如果我尝试在domain.com/gallery/photo1上重新加载页面。我得到错误未捕获的SyntaxError:意外的令牌<
只有一级永久链接的所有其他页面在重新加载时都能正常工作。我在Backbone上遗漏了什么吗?
我只是在使用主干网。路由器和主干网。历史。
有没有关于如何使用backbone.js建立网站的简单教程?只是历史问题?
这是我的脚本:
var Router;
var myRouter;
$(document).ready(function(){
Router = Backbone.Router.extend({
initialize : function(options) {
//
},
routes: {
'' : 'home',
'*actions' : 'pages'
},
home : function() {
this.render('/');
},
pages : function(actions) {
this.render(actions);
},
render : function(path) {
var fullLine = '';
path = (path === '/' || path === '')? '/' : path;
console.log('path: ' + path);
}
});
myRouter = new Router();
Backbone.emulateHTTP = true;
Backbone.emulateJSON = true;
Backbone.history.start({pushState: true, root: "/backbone_teste/"});
// MENU CLICK
$('.menu').children('li').each(function(){
$(this).click(function(){
myRouter.navigate($(this).attr('data-id'), true, true);
});
});
});
谢谢你的帮助!
问题已解决:
我刚刚在index.php文件的头部分添加了以下代码:
<base href="http://localhost/backbone_teste/" />
它是有效的。
无论如何,我想知道为什么会发生这种情况,以及为什么Backbone.js文档没有提到这一点。
我在这个链接上找到了解决方案:HTML5历史/pushState URL,.htaccess和You
感谢
相关文章:
- window.location替换并传递URL历史记录条目中的变量
- Javascript历史记录转换为php行
- 浏览器何时记录历史记录
- 输入类型按钮返回历史记录并返回顶部
- HTML5历史记录-返回上一个完整页面按钮
- asp.net网站文件下载历史记录
- 使用Ajax的后退按钮历史记录,URL中没有散列
- 历史记录和通过JavaScript修改的HTML
- Javascript:历史记录未加载页面
- 通过js设置页面历史记录和页面内容
- 如果没有历史记录,我如何隐藏图像或按钮onclick=;历史.go(-1);
- 将HTML表单发布到iframe会导致浏览器历史记录出现问题
- 如何防止浏览器在历史记录中缓存HTML
- 如何将新的stateObject添加或附加到历史记录中
- 检查浏览器后退按钮历史记录
- React-router 在添加历史记录后不会渲染组件
- 如何返回可用的历史记录状态数
- 引导选项卡不适用于历史记录.返回选项
- 记录 iframe 的历史记录
- 计算历史记录中的页数