javascriptPage.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. <?xml version="1.0"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <head>
  5. <title>Testing Javascript</title>
  6. <script type="text/javascript">
  7. var seen = {};
  8. function updateContent(input) {
  9. document.getElementById('resultParagraph').innerHTML = input.value;
  10. }
  11. function displayMessage(message) {
  12. document.getElementById('resultParagraph').innerHTML = message;
  13. }
  14. function appendMessage(message) {
  15. document.getElementById('resultParagraph').innerHTML += message + " ";
  16. }
  17. function register(message) {
  18. if (!seen[message]) {
  19. appendMessage(message);
  20. seen[message] = true;
  21. }
  22. }
  23. function delayedShowHide(delay, show) {
  24. var blackBox = document.getElementById('clickToHide');
  25. window.setTimeout(function() {
  26. blackBox.style.display = show ? '' : 'none';
  27. }, delay);
  28. }
  29. </script>
  30. <script type="text/javascript">
  31. var startList = function() {
  32. // Ugh. Let's hope no-one is faking their user agent when running the tests
  33. if (navigator.userAgent.indexOf("MSIE") != -1) {
  34. var navRoot = document.getElementById("nav");
  35. for (var i = 0; i < navRoot.childNodes.length; i++) {
  36. var node = navRoot.childNodes[i];
  37. if (node.nodeName == "LI") {
  38. node.onmouseover = function() {
  39. this.className += " over";
  40. };
  41. node.onmouseout = function() {
  42. this.className = this.className.replace(" over", "");
  43. };
  44. }
  45. }
  46. }
  47. };
  48. window.onload=startList;
  49. </script>
  50. <style type="text/css">
  51. #nav {
  52. padding: 0; margin: 0; list-style: none;
  53. }
  54. #nav li {
  55. float: left; position: relative; width: 10em;
  56. }
  57. #nav li ul {
  58. display: none; position: absolute; top: 1em; left: 0;
  59. }
  60. #nav li > ul { top: auto; left: auto; }
  61. #nav li:hover ul, #nav li.over ul{ display: block; background: white; }
  62. </style>
  63. </head>
  64. <body>
  65. <h1>Type Stuff</h1>
  66. <div>
  67. <ul id="nav">
  68. <li id="menu1">Menu 1
  69. <ul>
  70. <li id="item1" onclick="displayMessage('item 1');">Item 1</li>
  71. <li>Item 2</li>
  72. </ul>
  73. </li>
  74. </ul>
  75. </div>
  76. <div id="resultContainer" height="30">&nbsp;
  77. <div id="result" style="width:300;height:60">
  78. <p id="resultParagraph">&nbsp;</p>
  79. </div>
  80. </div>
  81. <div id="formageddon">
  82. <form action="#">
  83. Key Up: <input type="text" id="keyUp" onkeyup="javascript:updateContent(this)"/><br/>
  84. Key Down: <input type="text" id="keyDown" onkeydown="javascript:updateContent(this)"/><br/>
  85. Key Press: <input type="text" id="keyPress" onkeypress="javascript:updateContent(this)"/><br/>
  86. Change: <input type="text" id="change" onkeypress="javascript:displayMessage('change')"/><br/>
  87. <textarea id="keyDownArea" onkeydown="javascript:updateContent(this)" rows="2" cols="15"></textarea>
  88. <textarea id="keyPressArea" onkeypress="javascript:updateContent(this)" rows="2" cols="15"></textarea>
  89. <textarea id="keyUpArea" onkeyup="javascript:updateContent(this)" rows="2" cols="15"></textarea>
  90. <select id="selector" onchange="javascript:updateContent(this)">
  91. <option value="foo">Foo</option>
  92. <option value="bar">Bar</option>
  93. </select>
  94. <select id="selector2" onclick="javascript:updateContent(this)">
  95. <option value="foo">Foo</option>
  96. <option value="bar">Bar</option>
  97. </select>
  98. <input type="checkbox" id="checkbox" value="checkbox thing" onchange="javascript:updateContent(this)"/>
  99. <input id="clickField" type="text" onclick="document.getElementById('clickField').value='Clicked';" value="Hello"/>
  100. <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"/>
  101. <input id="clearMe" value="Something" onchange="displayMessage('Cleared')"/>
  102. </form>
  103. </div>
  104. <div>
  105. <p><a href="#" onclick="javascript:document.title='Changed'">Change the page title!</a></p>
  106. <p><a onclick="javascript:document.title='Changed'" id="nohref">No href</a></p>
  107. <p><a id="updatediv" href="#" onclick="javascript:document.getElementById('dynamo').innerHTML = 'Fish and chips!';">Update a
  108. div</a></p>
  109. </div>
  110. <div id="dynamo">What's for dinner?</div>
  111. <div id="mousedown" onmousedown="javascript:displayMessage('mouse down');">
  112. <p>Click for the mouse down event</p>
  113. <span><p id="child">Here's some text</p></span>
  114. </div>
  115. <div id="mouseup" onmouseup="javascript:displayMessage('mouse up');">
  116. <p>Click for the mouse up event</p>
  117. </div>
  118. <div id="mouseclick" onclick="javascript:displayMessage('mouse click');">
  119. <p>Click for the mouse click event</p>
  120. </div>
  121. <div id="error" onclick="document.getElementById('doesnotexist').innerHTML = 'cheese';">
  122. Clicking this causes a JS exception in the click handler
  123. </div>
  124. <div>
  125. <form action="resultPage.html" id="on-form">
  126. <input id="theworks"
  127. onfocus="appendMessage('focus')"
  128. onkeydown="appendMessage('keydown')"
  129. onkeypress="appendMessage('keypress')"
  130. onkeyup="appendMessage('keyup')"
  131. onblur="appendMessage('blur')"
  132. onchange="appendMessage('change')"
  133. />
  134. <input id="changeable" name="changeable" onfocus="appendMessage('focus')" onchange="appendMessage('change')" onblur="appendMessage('blur')"/>
  135. <button type="button" id="plainButton"
  136. onfocus="appendMessage('focus')"
  137. onkeydown="appendMessage('keydown')"
  138. onkeypress="appendMessage('keypress')"
  139. onkeyup="appendMessage('keyup')"
  140. onblur="appendMessage('blur')"
  141. onclick="appendMessage('click')"
  142. onmousedown="appendMessage('mousedown ')"
  143. onmouseup="appendMessage('mouseup ')"
  144. onmouseover="register('mouseover ')"
  145. onmousemove="register('mousemove ')"
  146. >
  147. <b>Go somewhere</b>
  148. </button>
  149. <button type="submit" id="submittingButton"><emph>submit</emph></button>
  150. <button type="button" id="jsSubmitButton" onclick="javascript:document.getElementById('on-form').submit();">Submitomatic</button>
  151. <button type="button" id="switchFocus" onclick="document.getElementById('theworks').focus();">Switch focus</button>
  152. <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/>
  153. <label id="labelForCheckbox" for="labeledCheckbox" onclick="appendMessage('labelclick')">Toggle checkbox</label><input type="checkbox" id="labeledCheckbox" onclick="appendMessage('chboxclick')"/>
  154. </form>
  155. <form action="javascriptPage.html" id="submitListeningForm" onsubmit="appendMessage('form-onsubmit '); return false;">
  156. <p>
  157. <input id="submitListeningForm-text" type="text" onsubmit="appendMessage('text-onsubmit ')" onclick="appendMessage('text-onclick ');" />
  158. <input id="submitListeningForm-submit" type="submit" onsubmit="appendMessage('submit-onsubmit ')" onclick="appendMessage('submit-onclick ');" />
  159. </p>
  160. </form>
  161. </div>
  162. <p id="suppressedParagraph" style="display: none">A paragraph suppressed using CSS display=none</p>
  163. <div>
  164. <p id="displayed">Displayed</p>
  165. <form action="#"><input type="hidden" name="hidden" /> </form>
  166. <p id="none" style="display: none;">Display set to none</p>
  167. <p id="hidden" style="visibility: hidden;">Hidden</p>
  168. <div id="hiddenparent" style="height: 2em; display: none;">
  169. <div id="hiddenchild">
  170. <a href="#" id="hiddenlink">ok</a>
  171. </div>
  172. </div>
  173. <div style="visibility: hidden;">
  174. <span>
  175. <input id="unclickable" />
  176. <input type="checkbox" id="untogglable" checked="checked" />Check box you can't see
  177. </span>
  178. </div>
  179. <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>
  180. </div>
  181. <div>
  182. <form>
  183. <input type="text" id="keyReporter" size="80"
  184. onkeyup="appendMessage('up: ' + event.keyCode)"
  185. onkeypress="appendMessage('press: ' + event.keyCode)"
  186. onkeydown="displayMessage(''); appendMessage('down: ' + event.keyCode)" />
  187. <input name="suppress" onkeydown="if (event.preventDefault) event.preventDefault(); event.returnValue = false; return false;" onkeypress="appendMessage('press');"/>
  188. </form>
  189. </div>
  190. <!-- Used for testing styles -->
  191. <div style="background-color: green;" id="green-parent">
  192. <p id="style1">This should be greenish</p>
  193. <ul>
  194. <li id="green-item">So should this</li>
  195. <li id="red-item" style="background-color: red;">But this is red</li>
  196. </ul>
  197. </div>
  198. <a href="#" id="close" onclick="window.close();">Close window</a>
  199. <div id="delete" onclick="var d = document.getElementById('deleted'); this.removeChild(d);">
  200. <p id="deleted">I should be deleted when you click my containing div</p>
  201. <p>Whereas, I should not</p>
  202. </div>
  203. <div>
  204. <span id="hideMe" onclick="this.style.display = 'none';">Click to hide me.</span>
  205. </div>
  206. <div id="hideOnBlur" tabindex="0"
  207. style="width: 100px; height: 100px; border: 1px solid red"
  208. onblur="appendMessage('blur'); this.style.display = 'none';">
  209. <div id="hideOnBlurChild"
  210. style="width: 30px; height: 30px; border: 1px solid blue">
  211. x
  212. </div>
  213. Focusable. Will hide when focus is lost.
  214. </div>
  215. <div style="margin-top: 10px;">
  216. Click actions delayed by 3000ms:
  217. <div id="clickToShow" onclick="delayedShowHide(3000, true);"
  218. style="float: left;width: 100px;height:100px;border: 1px solid black;">
  219. Click to show black box
  220. </div>
  221. <div id="clickToHide" onclick="delayedShowHide(3000, false);"
  222. style="float: left;width: 100px;height:100px;border: 1px solid black;
  223. background-color: black; color: white; display: none;">
  224. Click to hide black box
  225. </div>
  226. <div style="clear: both"></div>
  227. </div>
  228. <a id="new_window" onmouseup="window.open('closeable_window.html', 'close_me')" href="#">Click me to open a new window</a>
  229. <a id="throwing-mouseover" onmouseover="throw new Error()" href="#throwing-mouseover">Mouse over me will throw a JS error</a>
  230. <div id="parent">
  231. <span id="movable" onmouseover="var p = document.getElementById('movable'); displayMessage('parent matches? ' + (p != event.relatedTarget));">
  232. Click on me to show the related target
  233. </span>
  234. </div>
  235. <div id="zero" style="width:0;height:0">
  236. <div>
  237. <img src="map.png">
  238. </div>
  239. </div>
  240. </body>
  241. </html>