vnc_auto.html 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <!DOCTYPE html>
  2. <html>
  3. <!--
  4. noVNC Example: Automatically connect on page load.
  5. Copyright (C) 2010 Joel Martin
  6. Licensed under LGPL-3 (see LICENSE.txt)
  7. Connect parameters are provided in query string:
  8. http://example.com/?host=HOST&port=PORT&encrypt=1&true_color=1
  9. -->
  10. <head>
  11. <title>noVNC</title>
  12. <meta http-equiv="X-UA-Compatible" content="chrome=1">
  13. <link rel="stylesheet" href="include/plain.css" title="plain">
  14. <!--
  15. <script type='text/javascript'
  16. src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
  17. -->
  18. <script src="include/vnc.js"></script>
  19. </head>
  20. <body style="margin: 0px;">
  21. <div id="VNC_screen">
  22. <div id="VNC_status_bar" class="VNC_status_bar" style="margin-top: 0px;">
  23. <table border=0 width="100%"><tr>
  24. <td><div id="VNC_status">Loading</div></td>
  25. <td width="1%"><div id="VNC_buttons">
  26. <input type=button value="Send CtrlAltDel"
  27. id="sendCtrlAltDelButton">
  28. </div></td>
  29. </tr></table>
  30. </div>
  31. <canvas id="VNC_canvas" width="640px" height="20px">
  32. Canvas not supported.
  33. </canvas>
  34. </div>
  35. <script>
  36. /*jslint white: false */
  37. /*global window, $, Util, RFB, */
  38. "use strict";
  39. var rfb;
  40. function setPassword() {
  41. rfb.sendPassword($D('password_input').value);
  42. return false;
  43. }
  44. function sendCtrlAltDel() {
  45. rfb.sendCtrlAltDel();
  46. return false;
  47. }
  48. function updateState(rfb, state, oldstate, msg) {
  49. var s, sb, cad, klass;
  50. s = $D('VNC_status');
  51. sb = $D('VNC_status_bar');
  52. cad = $D('sendCtrlAltDelButton');
  53. switch (state) {
  54. case 'failed':
  55. case 'fatal':
  56. klass = "VNC_status_error";
  57. break;
  58. case 'normal':
  59. klass = "VNC_status_normal";
  60. break;
  61. case 'disconnected':
  62. case 'loaded':
  63. klass = "VNC_status_normal";
  64. break;
  65. case 'password':
  66. msg = '<form onsubmit="return setPassword();"';
  67. msg += ' style="margin-bottom: 0px">';
  68. msg += 'Password Required: ';
  69. msg += '<input type=password size=10 id="password_input" class="VNC_status">';
  70. msg += '<\/form>';
  71. klass = "VNC_status_warn";
  72. break;
  73. default:
  74. klass = "VNC_status_warn";
  75. }
  76. if (state === "normal") { cad.disabled = false; }
  77. else { cad.disabled = true; }
  78. if (typeof(msg) !== 'undefined') {
  79. sb.setAttribute("class", klass);
  80. s.innerHTML = msg;
  81. }
  82. }
  83. window.onload = function () {
  84. var host, port, password;
  85. $D('sendCtrlAltDelButton').onclick = sendCtrlAltDel;
  86. host = WebUtil.getQueryVar('host', null);
  87. port = WebUtil.getQueryVar('port', null);
  88. password = WebUtil.getQueryVar('password', '');
  89. if ((!host) || (!port)) {
  90. updateState('failed',
  91. "Must specify host and port in URL");
  92. return;
  93. }
  94. rfb = new RFB({'target': $D('VNC_canvas'),
  95. 'encrypt': WebUtil.getQueryVar('encrypt', false),
  96. 'true_color': WebUtil.getQueryVar('true_color', true),
  97. 'local_cursor': WebUtil.getQueryVar('cursor', true),
  98. 'shared': WebUtil.getQueryVar('shared', true),
  99. 'updateState': updateState});
  100. rfb.connect(host, port, password);
  101. };
  102. </script>
  103. </body>
  104. </html>