aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2013-04-03 19:04:00 +0000
committerSimon Tatham <anakin@pobox.com>2013-04-03 19:04:00 +0000
commita752e7372021c1eea5df433f08e53fae1983e8ec (patch)
tree2e9b3ccdb88cad41d77e1a210cf0134a830a8657
parentbd8c5941971585d80a2f383a85b15c3e5d041107 (diff)
downloadpuzzles-a752e7372021c1eea5df433f08e53fae1983e8ec.zip
puzzles-a752e7372021c1eea5df433f08e53fae1983e8ec.tar.gz
puzzles-a752e7372021c1eea5df433f08e53fae1983e8ec.tar.bz2
puzzles-a752e7372021c1eea5df433f08e53fae1983e8ec.tar.xz
Try to give a more friendly message if anything goes wrong during
puzzle startup. The puzzle web pages now enclose the whole puzzle (buttons, canvas, permalinks) in a div set to display:none, and instead display an apologetic message saying 'sorry, it didn't work'; then, if we get through the whole init function without crashing, we show the puzzle and hide the apology. [originally from svn r9802]
-rw-r--r--emccpre.js9
-rwxr-xr-xhtml/jspage.pl8
2 files changed, 16 insertions, 1 deletions
diff --git a/emccpre.js b/emccpre.js
index ea20771..e2986da 100644
--- a/emccpre.js
+++ b/emccpre.js
@@ -257,9 +257,16 @@ function initPuzzle() {
// Default to giving keyboard focus to the puzzle.
onscreen_canvas.focus();
- // And run the C setup function, passing argv[1] as the fragment
+ // Run the C setup function, passing argv[1] as the fragment
// identifier (so that permalinks of the form puzzle.html#game-id
// can launch the specified id).
Module.arguments = [location.hash];
Module.run();
+
+ // And if we get here with everything having gone smoothly, i.e.
+ // we haven't crashed for one reason or another during setup, then
+ // it's probably safe to hide the 'sorry, no puzzle here' div and
+ // show the div containing the actual puzzle.
+ document.getElementById("apology").style.display = "none";
+ document.getElementById("puzzle").style.display = "inline";
}
diff --git a/html/jspage.pl b/html/jspage.pl
index 7172800..376d39a 100755
--- a/html/jspage.pl
+++ b/html/jspage.pl
@@ -71,6 +71,7 @@ ${unfinishedheading}
${unfinishedpara}
<hr>
+<div id="puzzle" style="display: none">
<p align=center>
<input type="button" id="new" value="New game">
<input type="button" id="restart" value="Restart game">
@@ -98,6 +99,13 @@ ${unfinishedpara}
<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
+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>
<hr>
${instructions}