vnc_auto.html 3.9 KB

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