Browse Source

Query string cleanup and move it to util.js

Joel Martin 15 years ago
parent
commit
a8edf9d8a5
3 changed files with 21 additions and 18 deletions
  1. 4 10
      include/default_controls.js
  2. 9 0
      include/util.js
  3. 8 8
      vnc_auto.html

+ 4 - 10
include/default_controls.js

@@ -126,12 +126,6 @@ load: function(target) {
         };
         };
 },
 },
 
 
-// Read a query string variable
-getQueryVar: function(name) {
-    var re = new RegExp('[?].*' + name + '=([^&#]*)');
-    return (document.location.href.match(re) || ['',null])[1];
-},
-
 // Read form control compatible setting from cookie
 // Read form control compatible setting from cookie
 getSetting: function(name) {
 getSetting: function(name) {
     var val, ctrl = $('VNC_' + name);
     var val, ctrl = $('VNC_' + name);
@@ -188,14 +182,14 @@ saveSetting: function(name) {
 
 
 // Initial page load read/initialization of settings
 // Initial page load read/initialization of settings
 initSetting: function(name, defVal) {
 initSetting: function(name, defVal) {
-    var val, DC = DefaultControls;
+    var val;
 
 
     // Check Query string followed by cookie
     // Check Query string followed by cookie
-    val = DC.getQueryVar(name);
+    val = Util.getQueryVar(name);
     if (val === null) {
     if (val === null) {
         val = Util.readCookie(name, defVal);
         val = Util.readCookie(name, defVal);
     }
     }
-    DC.updateSetting(name, val);
+    DefaultControls.updateSetting(name, val);
     Util.Debug("Setting '" + name + "' initialized to '" + val + "'");
     Util.Debug("Setting '" + name + "' initialized to '" + val + "'");
     return val;
     return val;
 },
 },
@@ -206,7 +200,7 @@ initSetting: function(name, defVal) {
 //   On close, settings are applied
 //   On close, settings are applied
 clickSettingsMenu: function() {
 clickSettingsMenu: function() {
     var DC = DefaultControls;
     var DC = DefaultControls;
-    if (DefaultControls.settingsOpen) {
+    if (DC.settingsOpen) {
         DC.settingsApply();
         DC.settingsApply();
 
 
         DC.closeSettingsMenu();
         DC.closeSettingsMenu();

+ 9 - 0
include/util.js

@@ -160,6 +160,14 @@ Util.dirObj = function (obj, depth, parent) {
     return msg;
     return msg;
 };
 };
 
 
+// Read a query string variable
+Util.getQueryVar = function(name, defVal) {
+    var re = new RegExp('[?][^#]*' + name + '=([^&#]*)');
+    if (typeof defVal === 'undefined') { defVal = null; }
+    return (document.location.href.match(re) || ['',defVal])[1];
+};
+
+
 /*
 /*
  * Cross-browser routines
  * Cross-browser routines
  */
  */
@@ -264,6 +272,7 @@ Util.Flash = (function(){
 /*
 /*
  * Cookie handling. Dervied from: http://www.quirksmode.org/js/cookies.html
  * Cookie handling. Dervied from: http://www.quirksmode.org/js/cookies.html
  */
  */
+
 // No days means only for this browser session
 // No days means only for this browser session
 Util.createCookie = function(name,value,days) {
 Util.createCookie = function(name,value,days) {
     var date, expires;
     var date, expires;

+ 8 - 8
vnc_auto.html

@@ -40,6 +40,7 @@ Connect parameters are provided in query string:
         }
         }
         function sendCtrlAltDel() {
         function sendCtrlAltDel() {
             RFB.sendCtrlAltDel();
             RFB.sendCtrlAltDel();
+            return false;
         }
         }
         function updateState(state, msg) {
         function updateState(state, msg) {
             var s, sb, klass, html;
             var s, sb, klass, html;
@@ -81,20 +82,19 @@ Connect parameters are provided in query string:
         window.onload = function () {
         window.onload = function () {
             var host, port, password;
             var host, port, password;
 
 
-            url = document.location.href;
-            host = (url.match(/host=([A-Za-z0-9.\-]*)/) || ['',''])[1];
-            port = (url.match(/port=([0-9]*)/) || ['',''])[1];
-            password = (url.match(/password=([^&#]*)/) || ['',''])[1];
+            host = Util.getQueryVar('host', null);
+            port = Util.getQueryVar('port', null);
+            password = Util.getQueryVar('password', '');
             if ((!host) || (!port)) {
             if ((!host) || (!port)) {
                 updateState('failed',
                 updateState('failed',
                     "Must specify host and port in URL");
                     "Must specify host and port in URL");
                 return;
                 return;
             }
             }
 
 
-            RFB.setEncrypt((url.match(/encrypt=([A-Za-z0-9]*)/) || ['',1])[1]);
-            RFB.setBase64((url.match(/base64=([A-Za-z0-9]*)/) || ['',1])[1]);
-            RFB.setTrueColor((url.match(/true_color=([A-Za-z0-9]*)/) || ['',1])[1]);
-            RFB.setCursor((url.match(/cursor=([A-Za-z0-9]*)/) || ['',true])[1]);
+            RFB.setEncrypt(Util.getQueryVar('encrypt', true));
+            RFB.setBase64(Util.getQueryVar('base64', true));
+            RFB.setTrueColor(Util.getQueryVar('true_color', true));
+            RFB.setCursor(Util.getQueryVar('cursor', true));
             RFB.setUpdateState(updateState);
             RFB.setUpdateState(updateState);
 
 
             RFB.load();
             RFB.load();