From a8edf9d8a530459657345bbfe31b961a04a0353f Mon Sep 17 00:00:00 2001 From: Joel Martin Date: Thu, 22 Jul 2010 11:33:21 -0500 Subject: [PATCH] Query string cleanup and move it to util.js --- include/default_controls.js | 14 ++++---------- include/util.js | 9 +++++++++ vnc_auto.html | 16 ++++++++-------- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/include/default_controls.js b/include/default_controls.js index d00ab807..dd2e97d9 100644 --- a/include/default_controls.js +++ b/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 getSetting: function(name) { var val, ctrl = $('VNC_' + name); @@ -188,14 +182,14 @@ saveSetting: function(name) { // Initial page load read/initialization of settings initSetting: function(name, defVal) { - var val, DC = DefaultControls; + var val; // Check Query string followed by cookie - val = DC.getQueryVar(name); + val = Util.getQueryVar(name); if (val === null) { val = Util.readCookie(name, defVal); } - DC.updateSetting(name, val); + DefaultControls.updateSetting(name, val); Util.Debug("Setting '" + name + "' initialized to '" + val + "'"); return val; }, @@ -206,7 +200,7 @@ initSetting: function(name, defVal) { // On close, settings are applied clickSettingsMenu: function() { var DC = DefaultControls; - if (DefaultControls.settingsOpen) { + if (DC.settingsOpen) { DC.settingsApply(); DC.closeSettingsMenu(); diff --git a/include/util.js b/include/util.js index c92ab793..61d72d96 100644 --- a/include/util.js +++ b/include/util.js @@ -160,6 +160,14 @@ Util.dirObj = function (obj, depth, parent) { 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 */ @@ -264,6 +272,7 @@ Util.Flash = (function(){ /* * Cookie handling. Dervied from: http://www.quirksmode.org/js/cookies.html */ + // No days means only for this browser session Util.createCookie = function(name,value,days) { var date, expires; diff --git a/vnc_auto.html b/vnc_auto.html index e5a4c989..1d371729 100644 --- a/vnc_auto.html +++ b/vnc_auto.html @@ -40,6 +40,7 @@ Connect parameters are provided in query string: } function sendCtrlAltDel() { RFB.sendCtrlAltDel(); + return false; } function updateState(state, msg) { var s, sb, klass, html; @@ -81,20 +82,19 @@ Connect parameters are provided in query string: window.onload = function () { 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)) { updateState('failed', "Must specify host and port in URL"); 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.load();