Pasar parámetro a una librería JS

js

Muchas veces tenemos que luchar con librerías externas, o ajenas a nuestro alcance de edición, y no nos queda otra alternativa mas que adaptarnos a lo que se nos plantea.

Este post surge por la necesidad de implementar el código de trackeo de comScore (una empresa que trackea como analytics, pero certifica a quien quiere poner publicidad en tu sitio, que la métrica no fue alterada).

Particularmente, necesitábamos poder trackear, y pasarle a la librería de comScore dos parámetros, uno que depende del dominio y otro que se carga desde un “ABM” dependiendo de otras variables.

Este es el ejemplo de como tiene que quedar el markup:

<html>
<head>

<script type=”text/javascript” src=”nuestraLibreria.js”></script>
<script type=”text/javascript”>
comScoreLib.init([“PARAM1″]);
</script>
</head>

<body>

<script>
comScoreLib.comScoreMetrics(‘PARAM2’);
</script>

<script type=”text/javascript” src=”libreriaDeComScore.js”></script>

</body>

</html>

Como se puede ver, mejor en el ejemplo, “libreriaDeComScore.js” es la librería externa que no podemos modificar.

“comScoreLib.init([“PARAM1”]);” –> inicializa el primer parámetro que depende del dominio.

“comScoreLib.comScoreMetrics(‘PARAM2’);” –> la llamada al código de trackeo de comScore con el segundo parámetro que se carga desde un ABM.

Para que todo esto funcione, armamos una librería propia, que ejecuta la de comScore (nuestraLibreria.js).
nuestraLibreria.js:

 

var comScoreLib = comScoreLib || (function(){
var _args = {}; // private

return {
init : function(Args) { //inicializamos el primer parámetro
_args = Args;
},
comScoreMetrics : function(section) { //pasamos el segundo parámetro y ejecutamos el código de trackeo (librería externa)
}
};
}());

Como resultado, tenemos implementada nuestra librería personalizada que se adapta a la externa según nuestras necesidades.

[Facebook] [Google] [LinkedIn] [Twitter] [Windows Live] [Email]
Tagged with:

Leave a Reply

Your email address will not be published. Required fields are marked *

*