Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/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 主干历史状态到标签IE9_Javascript_Backbone.js - Fatal编程技术网

Javascript 主干历史状态到标签IE9

Javascript 主干历史状态到标签IE9,javascript,backbone.js,Javascript,Backbone.js,我有以下代码检查pushstate,并在不受支持时降级为hashbang(IE9): 它在功能上是有效的,但URL是由以下内容转换而来的: 到 看起来很难看。 我正在寻找一种简单的修复方法,用hashtag替换主机名后面的整个片段 尝试更换 Backbone.history.navigate(fragment + search, { trigger: true }); 借 它将转换http://dev.zwoop.be/home?page=1#home?page=1进入http://dev

我有以下代码检查pushstate,并在不受支持时降级为hashbang(IE9):

它在功能上是有效的,但URL是由以下内容转换而来的:



看起来很难看。
我正在寻找一种简单的修复方法,用hashtag替换主机名后面的整个片段

尝试更换

Backbone.history.navigate(fragment + search, { trigger: true });


它将转换
http://dev.zwoop.be/home?page=1#home?page=1
进入
http://dev.zwoop.be/#home?page=1

谢谢,但它给了我同样的结果。出于某种原因,它只是在已经存在的整个路径(包括片段和查询字符串)后面添加了作为哈希标记导航的内容。现在我想,这种行为可能有一个合理的原因:如果IE9用户使用支持HTML5历史的浏览器向其他人发送链接(或打开同一链接),路由器不会考虑HASBUG部分来解决路由问题。这意味着
http://dev.zwoop.be/home?page=1#home?page=1
将在非IE9浏览器中工作,而
http://dev.zwoop.be/#home?page=1
不会。嗯,说得对。但是,当pushstate可用时,是否也应该有一种方法来克服这种行为,用斜杠替换hashbang back?可能吧。自己实现路由器比攻击主干路由器更好。
Backbone.history.navigate(fragment + search, { trigger: true });
var modified = (fragment + search).replace(/([^\/]*)(#[^#]*)$/g, '$2');
Backbone.history.navigate(modified, { trigger: true });