Backbone.js cause bug only in IE7

后端 未结 4 1907
隐瞒了意图╮
隐瞒了意图╮ 2020-12-15 11:44

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

相关标签:
4条回答
  • 2020-12-15 12:26

    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.

    0 讨论(0)
  • 2020-12-15 12:47

    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 :)

    0 讨论(0)
  • 2020-12-15 12:47

    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

    0 讨论(0)
  • 2020-12-15 12:51

    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 :))

    0 讨论(0)
提交回复
热议问题