Fix annoying chrome dual-load bug
This commit is contained in:
parent
6e2955d60c
commit
1ed980150c
1
TODO.md
1
TODO.md
|
@ -1,6 +1,5 @@
|
||||||
# TODO for OSS
|
# TODO for OSS
|
||||||
* tests
|
* tests
|
||||||
* fix that chrome bug where it loads the doc twice
|
|
||||||
* Add file extensions ourselves to push state
|
* Add file extensions ourselves to push state
|
||||||
* add feedback for errors to UI - esp. too long
|
* add feedback for errors to UI - esp. too long
|
||||||
* make sure file store still functions appropriately
|
* make sure file store still functions appropriately
|
||||||
|
|
|
@ -19,22 +19,18 @@
|
||||||
// Handle pops
|
// Handle pops
|
||||||
var handlePop = function(evt) {
|
var handlePop = function(evt) {
|
||||||
var path = evt.target.location.pathname;
|
var path = evt.target.location.pathname;
|
||||||
if (path === '/') {
|
if (path === '/') { app.newDocument(true); }
|
||||||
app.newDocument(true);
|
else { app.loadDocument(path.substring(1, path.length)); }
|
||||||
}
|
|
||||||
else {
|
|
||||||
app.loadDocument(path.substring(1, path.length));
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
// If pop before loading jquery, delay load
|
// Set up the pop state to handle loads, skipping the first load
|
||||||
window.onpopstate = function(evt) {
|
// to make chrome behave like others:
|
||||||
try {
|
// http://code.google.com/p/chromium/issues/detail?id=63040
|
||||||
handlePop(evt);
|
setTimeout(function() {
|
||||||
} catch(err) {
|
window.onpopstate = function(evt) {
|
||||||
// not loaded yet
|
try { handlePop(evt); } catch(err) { /* not loaded yet */ }
|
||||||
}
|
};
|
||||||
};
|
}, 1000);
|
||||||
// Construct app and load if not loaded
|
// Construct app and load initial path
|
||||||
$(function() {
|
$(function() {
|
||||||
app = new haste('hastebin', { twitter: true });
|
app = new haste('hastebin', { twitter: true });
|
||||||
handlePop({ target: window });
|
handlePop({ target: window });
|
||||||
|
|
Loading…
Reference in New Issue