Entradas con la etiqueta ‘recoger’

JS – Recoger Parámetros de la Etiqueta Script

Publicado por Iván Gajate el 22 de febrero de 2015 en JavaScript | Los comentarios están cerrados.

Si tenemos una etiqueta script con algún parámetro así:

<script type="javascript" src="js/myscript.js?id=123"></script>

podemos recoger los parámetros usando esta función:

// Extract "GET" parameters from a JS include querystring
function getParams(script_name) {
  // Find all script tags
  var scripts = document.getElementsByTagName("script");
 
  // Look through them trying to find ourselves
  for(var i=0; i<scripts.length; i++) {
    if(scripts[i].src.indexOf("/" + script_name)>-1 && scripts[i].src.indexOf("?")>-1) {
      // Get an array of key=value strings of params
      var pa = scripts[i].src.split("?").pop().split("&");
 
      // Split each key=value into array, the construct js object
      var p = {};
      for(var j=0; j<pa.length; j++) {
        var kv = pa[j].split("=");
        p[kv[0]] = kv[1];
      }
      return p;
    }
  }
 
  // No scripts match
  return {};
}

Visto en loopj.com

Así, getParams(‘myscript’) devolverá:

{id:123}

AS3 – Recoger parámetros externos con loaderInfo

Publicado por Iván Gajate el 20 de septiembre de 2013 en AS3, Flash | Los comentarios están cerrados.

Algo muy típico es pasarle parámetros a Flash desde el html que lo contiene para que se inicie la carga según esos parámetros, por ejemplo para pasarle un idioma inicial, o alguna contraseña generada en el servidor.

En nuestro html sería algo así (si utilizamos swfobject que deberíamos 🙂

 

<script type="text/javascript">
	var flashvars = {};
	// Inyecto tantas variables como quiera
	flashvars.foo = "foo";
 
	var params = {menu:"false", scale:"noscale", bgcolor:"FFFFFF", allowScriptAccess:"always"};
	var attributes = {};
	//swfobject.embedSWF(swfUrl,      id,    width, height, version, expressInstallSwfurl, flashvars, params, attributes)
	swfobject.embedSWF("miflash.swf", "flashdiv", "1000", "600", "10.0.0", "playerProductInstall.swf", flashvars, params, attributes);
</script>

Desde nuestra peli de flash, podemos recoger esa variable foo utilizando loaderInfo:

 

package {
 
	import flash.display.MovieClip;
	import flash.text.TextField;
	import flash.events.*;
 
	public class Main extends MovieClip {
 
		public function Main() {
			this.addEventListener(Event.ADDED_TO_STAGE, added); // Me aseguro que esta addedToStage
		}
 
		private function added(e:Event):void{
			this.removeEventListener(Event.ADDED_TO_STAGE, added);
 
			if (loaderInfo != null){
				var parametros:Object = loaderInfo.parameters;
 
				// Para evitar que genere error en caso que no haya variables creamos un contador
				var cont:int = 0;
				for (var param:String in parametros){
					trace(parametros[param]);
					cont++;
				}
			}
 
		}
 
	}
}

NavigateToUrl y variables por POST

Publicado por Iván Gajate el 19 de octubre de 2011 en AS3, Flash | 10 comentarios »

Con el método navigateToURL se pueden enviar variables por POST, no solo abrir nuevas ventanas con una url dada.

Esto no se me había ocurrido nunca, pero mi amigo Dani me lo ha comentado hoy y resulta que funciona muy bien, gracias Dani 😉

Puede ser muy útil pues permite enviar cualquier variable oculta al usuario, un id, una variable de sesión, una imagen para guardar en servidor…

Sería algo así:

var req:URLRequest = new URLRequest("http://www.midominio.com/leer.php");

var datos:URLVariables = new URLVariables();
datos.email = "contacto@yporqueno.es";

req.method = URLRequestMethod.POST;
req.data = datos;

navigateToURL(req);
NOTA: Para que funcione el ejemplo hay que ejecutar el html (no el .swf) en un servidor con capacidad para correr php.

Descargar Ejemplo…