Fix annoying chrome dual-load bug
This commit is contained in:
parent
6e2955d60c
commit
1ed980150c
2 changed files with 11 additions and 16 deletions
1
TODO.md
1
TODO.md
|
@ -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
|
||||
|
|
|
@ -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 });
|
||||
|
|
Loading…
Reference in a new issue