Adam Gent
Adam Gent

Reputation: 49085

How to disable pushstate for Chrome? (for Davis.js)

How do you disable pushstate for Chrome (for testing purposes)?

Bonus if you know of a plugin that makes it easy to toggle :)

I'm using davis.js for my pushstate logic.

Upvotes: 1

Views: 2967

Answers (2)

Oliver Nightingale
Oliver Nightingale

Reputation: 1835

The reason your Davis.js routes are still working is because when you click a link it runs your routes directly, since there is no onPushState event, you should find though that using the back and forward buttons no longer trigger your routes.

If you want to emulate what happens in a browser that doesn't support pushState you can fool around with how Davis.js checks for support. This is done in the Davis.supported function.

You can override that function to always return false, which is what would happen normally in a browser that doesn't support pushState. If you wanted to you could wrap this up into a Davis.js extension, see the block iOS extension as an example.

Upvotes: 1

Some Guy
Some Guy

Reputation: 16210

history.pushState = function (){};
//An empty function so if it is used, it doesn't throw any errors

Put that in the console. Tada! You can easily make a Chrome extension that executes that on a page using a Content Script.

Upvotes: 3

Related Questions