Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/04/2011, 04:46
dfmex
 
Fecha de Ingreso: octubre-2008
Mensajes: 147
Antigüedad: 15 años, 6 meses
Puntos: 3
Exclamación Necesito un empunjoncito por favor

Hola amigos!

tengo un problema y no sé como resolverlo... sucede que lo que intento es convertir una variable (bueno, su información) en encode base64 desde javascript


Tengo el siguiente código:


Código Javascript:
Ver original
  1. var END_OF_INPUT = -1;
  2.  
  3. var base64Chars = new Array(
  4.     'A','B','C','D','E','F','G','H',
  5.     'I','J','K','L','M','N','O','P',
  6.     'Q','R','S','T','U','V','W','X',
  7.     'Y','Z','a','b','c','d','e','f',
  8.     'g','h','i','j','k','l','m','n',
  9.     'o','p','q','r','s','t','u','v',
  10.     'w','x','y','z','0','1','2','3',
  11.     '4','5','6','7','8','9','+','/'
  12. );
  13.  
  14. var reverseBase64Chars = new Array();
  15. for (var i=0; i < base64Chars.length; i++){
  16.     reverseBase64Chars[base64Chars[i]] = i;
  17. }
  18.  
  19. var base64Str;
  20. var base64Count;
  21. function setBase64Str(str){
  22.     base64Str = str;
  23.     base64Count = 0;
  24. }
  25. function readBase64(){    
  26.     if (!base64Str) return END_OF_INPUT;
  27.     if (base64Count >= base64Str.length) return END_OF_INPUT;
  28.     var c = base64Str.charCodeAt(base64Count) & 0xff;
  29.     base64Count++;
  30.     return c;
  31. }
  32. function encodeBase64(str){
  33.     setBase64Str(str);
  34.     var result = '';
  35.     var inBuffer = new Array(3);
  36.     var lineCount = 0;
  37.     var done = false;
  38.     while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){
  39.         inBuffer[1] = readBase64();
  40.         inBuffer[2] = readBase64();
  41.         result += (base64Chars[ inBuffer[0] >> 2 ]);
  42.         if (inBuffer[1] != END_OF_INPUT){
  43.             result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
  44.             if (inBuffer[2] != END_OF_INPUT){
  45.                 result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
  46.                 result += (base64Chars [inBuffer[2] & 0x3F]);
  47.             } else {
  48.                 result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);
  49.                 result += ('=');
  50.                 done = true;
  51.             }
  52.         } else {
  53.             result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);
  54.             result += ('=');
  55.             result += ('=');
  56.             done = true;
  57.         }
  58.         lineCount += 4;
  59.         if (lineCount >= 76){
  60.             result += ('\n');
  61.             lineCount = 0;
  62.         }
  63.     }
  64.    
  65.             return result;
  66.  
  67. }


y funciona correctamente, pero ahora lo que necesito es como que hacerlo funcionar desde otro javascript y definitivamente ya me he atorado, tengo él siguiente script:


Código Javascript:
Ver original
  1. var ready = document.getElementById('BotonCalc').value;
  2. var C = document.getElementById('C').value;
  3. var G = document.getElementById('G').value;
  4. var E = document.getElementById('E').value;
  5. var CE = document.getElementById('CE').value;
  6. var EXPPP = document.getElementById('EXP_pp').value;
  7. var TPPP = document.getElementById('TP_pp').value;
  8. var BP = document.getElementById('B_Precio').value;
  9.  
  10. var VCadena = "C="+C+"&G="+G+"&E="+E+"&CE="+CE+"&EXPPP="+EXPPP+"&TPPP="+TPPP+"&BP="+BP;
  11.  
  12.  
  13. // Acontinuación aquí deseo que se ejecute la función convirtiendo la información de la variable VCadena en Base64, pero no he logrado que funcione de ninguna forma
  14.  
  15.  
  16.  
  17. //var lineabase64 = return encodeBase64(VCadena);
  18. //var lineabase64 = function encodeBase64(VCadena);
  19. //var lineabase64 = encodeBase64(VCadena);
  20.  
  21.  
  22.  
  23.  
  24.  
  25. if(ready != ""){ var mostrar = "block";}
  26. else {var mostrar = "none";}
  27.  
  28. document.getElementById('base64').innerHTML = lineabase64;


Y pues quisiera saber si alguien me puede apoyar por favor para ver como lograr que la variable lineabase64 contenga la información de VCadena codificada en Base64


Gracias de antemano por la ayuda