| <?xml version="1.0"?> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <title>Testing Javascript</title> |
| <script type="text/javascript"> |
| var seen = {}; |
| |
| function updateContent(input) { |
| document.getElementById('resultParagraph').innerHTML = input.value; |
| } |
| |
| function displayMessage(message) { |
| document.getElementById('resultParagraph').innerHTML = message; |
| } |
| |
| function appendMessage(message) { |
| document.getElementById('resultParagraph').innerHTML += message + " "; |
| } |
| |
| function register(message) { |
| if (!seen[message]) { |
| appendMessage(message); |
| seen[message] = true; |
| } |
| } |
| |
| function delayedShowHide(delay, show) { |
| var blackBox = document.getElementById('clickToHide'); |
| window.setTimeout(function() { |
| blackBox.style.display = show ? '' : 'none'; |
| }, delay); |
| } |
| </script> |
| <script type="text/javascript"> |
| var startList = function() { |
| // Ugh. Let's hope no-one is faking their user agent when running the tests |
| if (navigator.userAgent.indexOf("MSIE") != -1) { |
| var navRoot = document.getElementById("nav"); |
| for (var i = 0; i < navRoot.childNodes.length; i++) { |
| var node = navRoot.childNodes[i]; |
| if (node.nodeName == "LI") { |
| node.onmouseover = function() { |
| this.className += " over"; |
| }; |
| node.onmouseout = function() { |
| this.className = this.className.replace(" over", ""); |
| }; |
| } |
| } |
| } |
| }; |
| window.onload=startList; |
| </script> |
| <style type="text/css"> |
| #nav { |
| padding: 0; margin: 0; list-style: none; |
| } |
| #nav li { |
| float: left; position: relative; width: 10em; |
| } |
| #nav li ul { |
| display: none; position: absolute; top: 1em; left: 0; |
| } |
| #nav li > ul { top: auto; left: auto; } |
| #nav li:hover ul, #nav li.over ul{ display: block; background: white; } |
| </style> |
| </head> |
| <body> |
| <h1>Type Stuff</h1> |
| |
| <div> |
| <ul id="nav"> |
| <li id="menu1">Menu 1 |
| <ul> |
| <li id="item1" onclick="displayMessage('item 1');">Item 1</li> |
| <li>Item 2</li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| |
| <div id="resultContainer" height="30"> |
| <div id="result" style="width:300;height:60"> |
| <p id="resultParagraph"> </p> |
| </div> |
| |
| </div> |
| |
| <div id="formageddon"> |
| <form action="#"> |
| Key Up: <input type="text" id="keyUp" onkeyup="javascript:updateContent(this)"/><br/> |
| Key Down: <input type="text" id="keyDown" onkeydown="javascript:updateContent(this)"/><br/> |
| Key Press: <input type="text" id="keyPress" onkeypress="javascript:updateContent(this)"/><br/> |
| Change: <input type="text" id="change" onkeypress="javascript:displayMessage('change')"/><br/> |
| <textarea id="keyDownArea" onkeydown="javascript:updateContent(this)" rows="2" cols="15"></textarea> |
| <textarea id="keyPressArea" onkeypress="javascript:updateContent(this)" rows="2" cols="15"></textarea> |
| <textarea id="keyUpArea" onkeyup="javascript:updateContent(this)" rows="2" cols="15"></textarea> |
| <select id="selector" onchange="javascript:updateContent(this)"> |
| <option value="foo">Foo</option> |
| <option value="bar">Bar</option> |
| </select> |
| <select id="selector2" onclick="javascript:updateContent(this)"> |
| <option value="foo">Foo</option> |
| <option value="bar">Bar</option> |
| </select> |
| <input type="checkbox" id="checkbox" value="checkbox thing" onchange="javascript:updateContent(this)"/> |
| <input id="clickField" type="text" onclick="document.getElementById('clickField').value='Clicked';" value="Hello"/> |
| <input id="doubleClickField" type="text" onclick="document.getElementById('doubleClickField').value='Clicked';" ondblclick="document.getElementById('doubleClickField').value='DoubleClicked';" oncontextmenu="document.getElementById('doubleClickField').value='ContextClicked'; return false;" value="DoubleHello"/> |
| <input id="clearMe" value="Something" onchange="displayMessage('Cleared')"/> |
| </form> |
| </div> |
| |
| <div> |
| <p><a href="#" onclick="javascript:document.title='Changed'">Change the page title!</a></p> |
| |
| <p><a onclick="javascript:document.title='Changed'" id="nohref">No href</a></p> |
| |
| <p><a id="updatediv" href="#" onclick="javascript:document.getElementById('dynamo').innerHTML = 'Fish and chips!';">Update a |
| div</a></p> |
| </div> |
| |
| <div id="dynamo">What's for dinner?</div> |
| |
| <div id="mousedown" onmousedown="javascript:displayMessage('mouse down');"> |
| <p>Click for the mouse down event</p> |
| <span><p id="child">Here's some text</p></span> |
| </div> |
| |
| <div id="mouseup" onmouseup="javascript:displayMessage('mouse up');"> |
| <p>Click for the mouse up event</p> |
| </div> |
| |
| <div id="mouseclick" onclick="javascript:displayMessage('mouse click');"> |
| <p>Click for the mouse click event</p> |
| </div> |
| |
| <div id="error" onclick="document.getElementById('doesnotexist').innerHTML = 'cheese';"> |
| Clicking this causes a JS exception in the click handler |
| </div> |
| |
| <div> |
| <form action="resultPage.html" id="on-form"> |
| <input id="theworks" |
| onfocus="appendMessage('focus')" |
| onkeydown="appendMessage('keydown')" |
| onkeypress="appendMessage('keypress')" |
| onkeyup="appendMessage('keyup')" |
| onblur="appendMessage('blur')" |
| onchange="appendMessage('change')" |
| /> |
| |
| <input id="changeable" name="changeable" onfocus="appendMessage('focus')" onchange="appendMessage('change')" onblur="appendMessage('blur')"/> |
| |
| <button type="button" id="plainButton" |
| onfocus="appendMessage('focus')" |
| onkeydown="appendMessage('keydown')" |
| onkeypress="appendMessage('keypress')" |
| onkeyup="appendMessage('keyup')" |
| onblur="appendMessage('blur')" |
| onclick="appendMessage('click')" |
| onmousedown="appendMessage('mousedown ')" |
| onmouseup="appendMessage('mouseup ')" |
| onmouseover="register('mouseover ')" |
| onmousemove="register('mousemove ')" |
| > |
| <b>Go somewhere</b> |
| </button> |
| <button type="submit" id="submittingButton"><emph>submit</emph></button> |
| <button type="button" id="jsSubmitButton" onclick="javascript:document.getElementById('on-form').submit();">Submitomatic</button> |
| |
| <button type="button" id="switchFocus" onclick="document.getElementById('theworks').focus();">Switch focus</button> |
| <button type="button" onclick="var element = document.getElementById('switchFocus'); var clickEvent = document.createEvent('MouseEvents'); clickEvent.initMouseEvent('click', true, true, null, 0, 0, 0, 0, 0,false, false, false, false, 0, element);element.dispatchEvent(clickEvent);">Do magic</button><br/> |
| <label id="labelForCheckbox" for="labeledCheckbox" onclick="appendMessage('labelclick')">Toggle checkbox</label><input type="checkbox" id="labeledCheckbox" onclick="appendMessage('chboxclick')"/> |
| </form> |
| |
| <form action="javascriptPage.html" id="submitListeningForm" onsubmit="appendMessage('form-onsubmit '); return false;"> |
| <p> |
| <input id="submitListeningForm-text" type="text" onsubmit="appendMessage('text-onsubmit ')" onclick="appendMessage('text-onclick ');" /> |
| <input id="submitListeningForm-submit" type="submit" onsubmit="appendMessage('submit-onsubmit ')" onclick="appendMessage('submit-onclick ');" /> |
| </p> |
| </form> |
| </div> |
| |
| <p id="suppressedParagraph" style="display: none">A paragraph suppressed using CSS display=none</p> |
| |
| <div> |
| <p id="displayed">Displayed</p> |
| |
| <form action="#"><input type="hidden" name="hidden" /> </form> |
| |
| <p id="none" style="display: none;">Display set to none</p> |
| |
| <p id="hidden" style="visibility: hidden;">Hidden</p> |
| |
| <div id="hiddenparent" style="height: 2em; display: none;"> |
| <div id="hiddenchild"> |
| <a href="#" id="hiddenlink">ok</a> |
| </div> |
| </div> |
| |
| <div style="visibility: hidden;"> |
| <span> |
| <input id="unclickable" /> |
| <input type="checkbox" id="untogglable" checked="checked" />Check box you can't see |
| </span> |
| </div> |
| |
| <p id="outer" style="visibility: hidden">A <b id="visibleSubElement" style="visibility: visible">sub-element that is explicitly visible</b> using CSS visibility=visible</p> |
| </div> |
| |
| <div> |
| <form> |
| <input type="text" id="keyReporter" size="80" |
| onkeyup="appendMessage('up: ' + event.keyCode)" |
| onkeypress="appendMessage('press: ' + event.keyCode)" |
| onkeydown="displayMessage(''); appendMessage('down: ' + event.keyCode)" /> |
| <input name="suppress" onkeydown="if (event.preventDefault) event.preventDefault(); event.returnValue = false; return false;" onkeypress="appendMessage('press');"/> |
| </form> |
| </div> |
| |
| <!-- Used for testing styles --> |
| <div style="background-color: green;" id="green-parent"> |
| <p id="style1">This should be greenish</p> |
| <ul> |
| <li id="green-item">So should this</li> |
| <li id="red-item" style="background-color: red;">But this is red</li> |
| </ul> |
| </div> |
| |
| <a href="#" id="close" onclick="window.close();">Close window</a> |
| |
| <div id="delete" onclick="var d = document.getElementById('deleted'); this.removeChild(d);"> |
| <p id="deleted">I should be deleted when you click my containing div</p> |
| <p>Whereas, I should not</p> |
| </div> |
| |
| <div> |
| <span id="hideMe" onclick="this.style.display = 'none';">Click to hide me.</span> |
| </div> |
| |
| <div id="hideOnBlur" tabindex="0" |
| style="width: 100px; height: 100px; border: 1px solid red" |
| onblur="appendMessage('blur'); this.style.display = 'none';"> |
| <div id="hideOnBlurChild" |
| style="width: 30px; height: 30px; border: 1px solid blue"> |
| x |
| </div> |
| Focusable. Will hide when focus is lost. |
| </div> |
| |
| <div style="margin-top: 10px;"> |
| Click actions delayed by 3000ms: |
| <div id="clickToShow" onclick="delayedShowHide(3000, true);" |
| style="float: left;width: 100px;height:100px;border: 1px solid black;"> |
| Click to show black box |
| </div> |
| <div id="clickToHide" onclick="delayedShowHide(3000, false);" |
| style="float: left;width: 100px;height:100px;border: 1px solid black; |
| background-color: black; color: white; display: none;"> |
| Click to hide black box |
| </div> |
| <div style="clear: both"></div> |
| </div> |
| |
| <a id="new_window" onmouseup="window.open('closeable_window.html', 'close_me')" href="#">Click me to open a new window</a> |
| |
| <a id="throwing-mouseover" onmouseover="throw new Error()" href="#throwing-mouseover">Mouse over me will throw a JS error</a> |
| |
| <div id="parent"> |
| <span id="movable" onmouseover="var p = document.getElementById('movable'); displayMessage('parent matches? ' + (p != event.relatedTarget));"> |
| Click on me to show the related target |
| </span> |
| </div> |
| |
| <div id="zero" style="width:0;height:0"> |
| <div> |
| <img src="map.png"> |
| </div> |
| </div> |
| |
| </body> |
| </html> |
| |
| |