1
0
Fork 0
mirror of https://github.com/SunRed/haste-server.git synced 2024-11-23 17:50:19 +01:00

Fixes for Firefox

This commit is contained in:
John Crepezzi 2011-11-21 09:56:33 -05:00
parent 9638baffdb
commit 9fa99fe69d
4 changed files with 31 additions and 17 deletions

3
TODO
View file

@ -4,6 +4,9 @@ test in other browsers and add note to README
maximum size of a haste
fix any annoying visual quirks
add FAVICON
cache static in memory
bug in ^n while editing
# shared version only
some way to do announcements easily (and use for ads)
copy URL to clipboard button

View file

@ -19,6 +19,7 @@ textarea {
#box {
padding: 0px;
margin: 0px;
width: 100%;
height: 100%;
}

View file

@ -59,8 +59,8 @@ var haste = function(appName, options) {
this.$textarea = $('textarea');
this.$box = $('#box');
this.$code = $('#box code');
this.configureShortcuts();
this.options = options;
this.configureShortcuts();
};
// Set the page title - include the appName
@ -120,7 +120,7 @@ haste.prototype.loadDocument = function(key) {
_this.setTitle(title);
_this.fullKey();
_this.$textarea.val('').hide();
_this.$box.show();
_this.$box.show().focus();
}
else {
_this.newDocument();
@ -151,7 +151,7 @@ haste.prototype.lockDocument = function() {
_this.fullKey();
window.history.pushState(null, _this.appName + '-' + ret.key, '/' + ret.key);
_this.$textarea.val('').hide();
_this.$box.show();
_this.$box.show().focus();
}
});
};
@ -159,7 +159,7 @@ haste.prototype.lockDocument = function() {
// Configure keyboard shortcuts for the textarea
haste.prototype.configureShortcuts = function() {
var _this = this;
$('body').keydown(function(evt) {
$(document.body).keydown(function(evt) {
// ^L or ^S for lock
if (evt.ctrlKey && (evt.keyCode === 76 || evt.keyCode === 83)) {
if (_this.$textarea.val().replace(/^\s+|\s+$/g, '') !== '') {

View file

@ -12,19 +12,29 @@
<script type="text/javascript" src="application.js"></script>
<script type="text/javascript">
var app = null;
// 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 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
$(function() {
// Set up
var app = new haste('haste', { twitter: true });
// Handle pops
window.onpopstate = function(evt) {
var path = evt.target.location.pathname;
if (path === '/') {
app.newDocument(true);
}
else {
app.loadDocument(path.substring(1, path.length));
}
};
app = new haste('haste', { twitter: true });
handlePop({ target: window });
});
</script>
@ -33,7 +43,7 @@
<body>
<div id="key"></div>
<pre id="box" style="display:none;"><code></code></pre>
<pre id="box" style="display:none;" tabindex="0"><code></code></pre>
<textarea spellcheck="false" style="display:none;"></textarea>
</body>