Search code examples
firefoxbackbone.jsurl-routing

Backbone navigate triggers twice in Firefox


Trying to use Backbone's navigate property.

 this.navigate("week/" + companyName + "/" + employeeNo + "/" + weekEnd, { trigger: true, replace: false });

The code above is executed once.

It hits this:

routes: {
    "week/:companyName/:employeeNo/:weekEnd": "getWeek"
},

And then this function gets hit twice:

getWeek: function (companyName, employeeNo, weekEnd) {
    console.log('getWeek:', companyName, employeeNo, weekEnd);
 }

It is logged twice in Firefox, only once in IE and Chrome.

What's the issue here? I originally didn't even have trigger set to true, and Firefox ignored that and still triggered the URL.


Solution

  • I had a similar issue recently with Firefox doing two server calls after a Backbone.navigate. In my case it was because we had not encoded the string. Does your company name have any characters which should be encoded?

    You could try:

    this.navigate("week/" + escape(companyName) + "/" + employeeNo + "/" + weekEnd, { trigger: true, replace: false });