Fix annoying chrome dual-load bug

This commit is contained in:
John Crepezzi 2011-11-28 01:27:41 -05:00
parent 6e2955d60c
commit 1ed980150c
2 changed files with 11 additions and 16 deletions

View File

@ -1,6 +1,5 @@
# TODO for OSS
* tests
* fix that chrome bug where it loads the doc twice
* Add file extensions ourselves to push state
* add feedback for errors to UI - esp. too long
* make sure file store still functions appropriately

View File

@ -19,22 +19,18 @@
// Handle pops
var handlePop = function(evt) {
var path = evt.target.location.pathname;
if (path === '/') {
app.newDocument(true);
}
else {
app.loadDocument(path.substring(1, path.length));
}
if (path === '/') { app.newDocument(true); }
else { app.loadDocument(path.substring(1, path.length)); }
};
// If pop before loading jquery, delay load
window.onpopstate = function(evt) {
try {
handlePop(evt);
} catch(err) {
// not loaded yet
}
};
// Construct app and load if not loaded
// Set up the pop state to handle loads, skipping the first load
// to make chrome behave like others:
// http://code.google.com/p/chromium/issues/detail?id=63040
setTimeout(function() {
window.onpopstate = function(evt) {
try { handlePop(evt); } catch(err) { /* not loaded yet */ }
};
}, 1000);
// Construct app and load initial path
$(function() {
app = new haste('hastebin', { twitter: true });
handlePop({ target: window });