Så kan du også prøve at lege lidt med denne her:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>VæpMorseFætter 1.0</title>
<style type="text/css">
html, body {
height: 100%;
margin: 0;
padding: 0;
}
.m_display {
padding: 10px;
}
.m_display * {
vertical-align: middle;
}
.m_display s {
/* Morse dash */
font-size: 0;
padding: 0 6px;
margin: 0 2px 0 1px;
background: black;
}
.m_display i {
/* Morse dot */
font-size: 0;
padding: 0 2px;
margin: 0 2px 0 1px;
background: black;
}
.m_display span {
/* Letter */
margin: 0 5px;
white-space: nowrap;
}
.m_display span.break {
/* Word break */
margin: 0 12px;
}
</style>
<script type="text/JavaScript">
var d=document;
function gE(id){return d.getElementById(id)};
function cE(t){return d.createElement(t)};
function cT(s){return d.createTextNode(s)};
// Duration af a dash in seconds
var nDashDur = 0.5;
// Morse code delimiter character
var sDelimiter = "/";
var oTmpl = {};
oTmpl.char = cE("span");
oTmpl.wBreak = cE("span");
oTmpl.dash = cE("s");
oTmpl.dash.appendChild( cT("\u00a0") );
oTmpl.dot = cE("i");
oTmpl.dot.appendChild( cT("\u00a0") );
oTmpl.wBreak.appendChild( cT("\u00a0") );
oTmpl.wBreak.className = "break";
var oDispl = null;
var oActLetter = null;
var oMorseTimer = null;
var aMorseLetters = [];
nDashDur *= 1000;
var nDotDur = nDashDur/3;
var nBreakDur = nDashDur*3;
var bMorseEnabled = true;
function kDown(e) {
e = e ? e : event;
if (!bMorseEnabled) return;
if (!(e.keyCode==13 && e.altKey)) return;
bMorseEnabled = false;
var nNow = new Date().getTime();
if (!oMorseTimer) oDispl.removeChild(oDispl.firstChild);
if (oMorseTimer&&nNow-oMorseTimer>nBreakDur) {
oDispl.appendChild( cT(" ") );
oActLetter = oTmpl.wBreak.cloneNode(true);
oDispl.appendChild(oActLetter);
aMorseLetters.push(" ");
}
if (nNow-oMorseTimer>nDashDur) {
oActLetter = oTmpl.char.cloneNode(true);
oDispl.appendChild(oActLetter);
oDispl.appendChild( cT(" ") );
aMorseLetters.push("");
}
oMorseTimer = nNow;
killEvent(e);
}
function kUp(e) {
e = e ? e : event;
if (!(e.keyCode==13 && e.altKey)) return;
var nDelay, o, nNow = new Date().getTime();
nDelay = nNow-oMorseTimer;
o = oTmpl[ nDelay<=nDotDur ? "dot" : "dash" ].cloneNode(true);
aMorseLetters[aMorseLetters.length-1] += nDelay<=nDotDur ? "." : "-";
oActLetter.appendChild(o);
oMorseTimer = nNow;
bMorseEnabled = true;
killEvent(e);
}
function killEvent(e) {
if (e.preventDefault) e.preventDefault();
if (e.stopPropagation) e.stopPropagation();
e.cancelBubble = true;
e.returnValue = false;
}
function getMorseString() {
return aMorseLetters.join(sDelimiter);
}
function clearMorseDisplay() {
while (oDispl.firstChild) oDispl.removeChild(oDispl.firstChild);
oDispl.appendChild( cT("\u00a0") );
oMorseTimer = null;
aMorseLetters = [];
}
window.onload = function() {
oDispl = document.getElementById("morseDisplay");
document.onkeydown = kDown;
document.onkeyup = kUp;
}
</script>
</head>
<body>
<p><button onclick="alert(getMorseString())" onfocus="this.blur()">Kode</button>
<button onclick="clearMorseDisplay()" onfocus="this.blur()">Slet</button></p>
<p>Hold ALT nede og skriv morsekode med 'Return'. En streg er i øjeblikket sat til 1/2 sekund.</p>
<div style="padding:20px">
<div id="morseDisplay" class="m_display"> </div>
<hr>
<div class="m_display">
<span><s> </s><s> </s><s> </s></span>
<span><i> </i><s> </s><i> </i><i> </i></span>
<span><i> </i></span>
<span class="break"> </span>
<span><s> </s><i> </i><i> </i><i> </i></span>
<span><s> </s><s> </s><s> </s></span>
<span><i> </i><s> </s><i> </i><i> </i></span>
<span><i> </i></span>
<span class="break"> </span>
<b>;o)</b>
</div>
</div>
</body>
</html>