ref: 5dc559c8be1b8f6ed15f560433f25c952c874f93
parent: 7479c2882dfa7c3b75653c728ade1997734f3d01
author: Simon Tatham <anakin@pobox.com>
date: Fri Apr 5 11:49:25 EDT 2013
Assorted HTML/CSS fiddlings to make things work better in IE. I've added a trivial doctype (IE complained without it), but that caused a gap to appear between the puzzle and the status bar, so I tinkered a bit more and ended up removing the <table> completely (no great loss) as well as adding display:block to the canvas and explicitly setting the width of not only the status bar div but also its parent div. Meanwhile, I'm putting the "px" on the end of a lot of properties I set from JS, because IE complains about that too if I don't. [originally from svn r9809]
--- a/emcclib.js
+++ b/emcclib.js
@@ -525,11 +525,13 @@
* back end turns out to want one.
*/
js_canvas_make_statusbar: function() {
- var statustd = document.getElementById("statusbarholder");
+ var statusholder = document.getElementById("statusbarholder");
statusbar = document.createElement("div");
statusbar.style.overflow = "hidden";
- statusbar.style.width = onscreen_canvas.width - 4;
+ statusbar.style.width = (onscreen_canvas.width - 4) + "px";
+ statusholder.style.width = onscreen_canvas.width + "px";
statusbar.style.height = "1.2em";
+ statusbar.style.textAlign = "left";
statusbar.style.background = "#d8d8d8";
statusbar.style.borderLeft = '2px solid #c8c8c8';
statusbar.style.borderTop = '2px solid #c8c8c8';
@@ -536,7 +538,7 @@
statusbar.style.borderRight = '2px solid #e8e8e8';
statusbar.style.borderBottom = '2px solid #e8e8e8';
statusbar.appendChild(document.createTextNode(" "));
- statustd.appendChild(statusbar);
+ statusholder.appendChild(statusbar);
},
/*
@@ -560,8 +562,10 @@
js_canvas_set_size: function(w, h) {
onscreen_canvas.width = w;
offscreen_canvas.width = w;
- if (statusbar !== null)
- statusbar.style.width = w - 4;
+ if (statusbar !== null) {
+ statusbar.style.width = (w - 4) + "px";
+ document.getElementById("statusbarholder").style.width = w + "px";
+ }
onscreen_canvas.height = h;
offscreen_canvas.height = h;
@@ -587,15 +591,15 @@
// Now create a form which sits on top of that in turn.
dlg_form = document.createElement("form");
- dlg_form.style.width = window.innerWidth * 2 / 3;
+ dlg_form.style.width = (window.innerWidth * 2 / 3) + "px";
dlg_form.style.opacity = 1;
dlg_form.style.background = '#ffffff';
dlg_form.style.color = '#000000';
dlg_form.style.position = 'absolute';
dlg_form.style.border = "2px solid black";
- dlg_form.style.padding = 20;
- dlg_form.style.top = window.innerHeight / 10;
- dlg_form.style.left = window.innerWidth / 6;
+ dlg_form.style.padding = "20px";
+ dlg_form.style.top = (window.innerHeight / 10) + "px";
+ dlg_form.style.left = (window.innerWidth / 6) + "px";
dlg_form.style["z-index"] = 100;
var title = document.createElement("p");
--- a/html/jspage.pl
+++ b/html/jspage.pl
@@ -57,6 +57,7 @@
}
print $outpage <<EOF;
+<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ASCII" />
@@ -82,23 +83,16 @@
<input type="button" id="random" value="Enter random seed">
<select id="gametype"></select>
</p>
-<p align=center>
- <table cellpadding="0" cellspacing="0">
- <tr>
- <td>
- <canvas id="puzzlecanvas" width="1" height="1" tabindex="1">
- </td>
- <tr>
- <td id="statusbarholder">
- </td>
- </tr>
- </table>
-</p>
-<p align=center>
- Link to this puzzle:
- <a id="permalink-desc">by game ID</a>
- <a id="permalink-seed">by random seed</a>
-</p>
+<div align=center>
+ <canvas style="display: block" id="puzzlecanvas" width="1px" height="1px" tabindex="1">
+ </canvas>
+ <div id="statusbarholder" style="display: block">
+ </div>
+ <p>
+ Link to this puzzle:
+ <a id="permalink-desc">by game ID</a>
+ <a id="permalink-seed">by random seed</a>
+ </p>
</div>
<div id="apology">
Sorry, this Javascript puzzle doesn't seem to work on your web
@@ -105,6 +99,7 @@
browser. Perhaps you have Javascript disabled, or perhaps your browser
doesn't provide a feature they depend on. These puzzles have been
successfully run in Firefox 19 and Chrome 25.
+</div>
</div>
<hr>