I\'m developping a web app with CodeIgniter on back-end and Backbone.js on front-end. I\'m also using HTML5 Boilerplate as my start template.
I\'m using Backbone\'s
The solution that I found to work was to use Ben Alman's hashchange plugin. Go to the start function in Backbone.History and replace the code of the start function with this.
start : function() { $(window).hashchange(this.checkUrl); return this.loadUrl(); }
And be sure to include the hashchange plugin file in your code.
The right way to handle an #hash base application with Backbone seems to Backbone.history.saveLocation( hash ) and after Backbone.history.loadUrl() to enable Controller's routing.
Whish i knew this before... Have fun with this awesome MVC library :)
Clicking on a hash-URL does not actually save a history entry in IE -- use Backbone's saveLocation
function to drop a marker of a location you want to be able to go back to. For the full scoop, see:
http://documentcloud.github.com/backbone/#Controller-saveLocation
I found a solution for this problem from Jon Leighton in the offical issue list: https://github.com/documentcloud/backbone/issues/228
Until an offical patch add this to the backbone.js (line 689 in Backbone 0.3.3)
this.iframe.document.open().close(); this.iframe.location.hash = window.location.hash;
after the following line:
this.iframe = $('iframe src="javascript:0" tabindex="-1" ').hide().appendTo('body')[0].contentWindow;
(I couldn´t write the complete i-frame tag < & /> - it isn´t allowed here :))