代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<base href="http://localhost:81/backbone/"></base>
<title></title>
</head>
<body>
<a id="back" href='backbone-master/router.html#dispatch/1234'>
<button class="btn btn-xs btn-light bigger">
<i class="icon-arrow-left"></i>dispatch
</button>
</a>
<a id="back" href='backbone-master/router.html#index'>
<button class="btn btn-xs btn-light bigger">
<i class="icon-arrow-left"></i>index
</button>
</a>
<a id="back" href='backbone-master/router.html#logout'>
<button class="btn btn-xs btn-light bigger">
<i class="icon-arrow-left"></i>logout
</button>
</a>
</body>
<script src="backbone-master/test/vendor/jquery.js"></script>
<script src="backbone-master/test/vendor/underscore.js"></script>
<script src="backbone-master/backbone.js"></script>
<script type="text/javascript">
var AppRouter = Backbone.Router.extend({
routes: {
'index':'index',
'dispatch/:inventoryId':'dispatch',
'logout':'logout'
},
logout: function(){
console.log("logout")
},
index: function(){
console.log("index")
},
dispatch: function(inventoryId){
console.log("dispatch inventoryId:"+ inventoryId)
}
})
window.appRouter = new AppRouter('body');
Backbone.history.start();
</script>
</html>
如果进入这个页面的url地址是带参数的,如:http://localhost:81/backbone/backbone-master/router.html?a=1,和锚点中的不一致,所以导致刷新
使用springmvc的话,解决办法:
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"+request.getServerName() + ":" + request.getServerPort() + path + "/";
String forwardRequestUri = request.getAttribute("javax.servlet.forward.request_uri").toString() + (request.getQueryString() == null? "": "?" + request.getQueryString());
%>
<a id="back" href='<%=forwardRequestUri%>#index'>