Como resolver conflicto entre paginas con Jquery

33 views
Skip to first unread message

Miguel Angel Marquina

unread,
Sep 9, 2015, 7:18:44 PM9/9/15
to jsp...@googlegroups.com
Hola amigos de JsPeru,

Un gusto saludarles , bueno aprovechando su experiencia en temas de javascript, tengo un problema que no he podido solucionar.

Tengo inyectando  un formulario embebido a una pagina externa de mi sistema y entonces detecte que en su pagina tiene esta reasignacion al jQuery , entonces esa configuracion esta perjudicando los componentes de la funcionalidad del embebido y claro no reconoce las extenciones del jQuery .

Agradecere su apoyo.
Esta reasignacion en la pagina externa  es el problema.
************************************************

 var tpj=jQuery;            
                tpj.noConflict();              
                var revapi50;
               
                tpj(document).ready(function() {
               
                if(tpj('#rev_slider_50_1').revolution == undefined)
                    revslider_showDoubleJqueryError('#rev_slider_50_1');
                else
                   revapi50 = tpj('#rev_slider_50_1').show().revolution(  ....

************************************************
Saludos cordiales.

--
Atte.     Ing. Miguel Angel Marquina 
rpc:      987 - 585052
claro:   955 - 786887 
nexteL:600 * 2100
 

Sergio Castillo

unread,
Sep 9, 2015, 11:04:15 PM9/9/15
to jsp...@googlegroups.com
Y que es lo que tu quieres hacer?

--
Has recibido este mensaje porque estás suscrito al grupo "JavaScript Perú" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a jsperu+un...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Miguel Angel Marquina

unread,
Sep 10, 2015, 11:58:08 AM9/10/15
to jsp...@googlegroups.com

Como la pagina externa contiene mi componente ejemplo un formulario que le envio embebido entonces de que manera mapeo en la vista del embebido la variable que ellos configuraron [var tpj=jQuery;] en su pagina home  y me envían [tpj] para obtener la funcionalidad del formaulario  embebido, claro como les comente yo espero [jQuery] y al no tenerlo el formulario no funciona. 

Como hago para  reasignarlo algo asi [var jQuery=tpj;] , no se si eso funcione, agradeceré sus sugerencias.

Saludos.

Sergio Castillo

unread,
Sep 10, 2015, 12:48:37 PM9/10/15
to jsp...@googlegroups.com
Yo encerraria tu codigo en un closure:

(function (jQuery) {
// Aqui dentro se llama jQuery… y si quieres le puedes poner $
})(tpj);

Miguel Angel Marquina

unread,
Sep 10, 2015, 12:51:46 PM9/10/15
to jsp...@googlegroups.com

Interesante Sergio,

Voy a probar tu sugerencias.

Gracias.

Miguel Angel Marquina

unread,
Sep 11, 2015, 11:54:56 AM9/11/15
to jsp...@googlegroups.com
Buenos dias Sergio,

Sobre los que me comentaste , porfa mira yo tengo estas extensiones que uso en mi forumario embebido.

<script type="text/javascript" src="<?php echo 'http://' . $this->domain . '/assets/generic/jquery-1.10.2/jquery-1.10.2.min.js' ?>" language="javascript"></script>
<script type="text/javascript" src="<?php echo 'http://' . $this->domain . '/assets/generic/jquery-ui/jquery-ui-1.10.3.custom.js' ?>" language="javascript"></script>
<script type="text/javascript" src="<?php echo 'http://' . $this->domain . '/assets/generic/serializable/serializableForm.js' ?>" language="javascript"></script>
<script type="text/javascript" src="<?php echo 'http://' . $this->domain . '/assets/generic/search-script/autocomplete-city.js' ?>" language="javascript"></script>
<script type="text/javascript" src="<?php echo 'http://' . $this->domain . '/assets/generic/search-script/search-ajax.js' ?>" language="javascript"></script>
<script type="text/javascript" src="<?php echo 'http://' . $this->domain . '/assets/generic/chosen_v1.0.0/chosen.jquery.js' ?>" language="javascript"></script>
<script type="text/javascript">

    $(function() {
        $( "#tabs" ).tabs();
    });
</script>

de que manera agruparia  para redefinir la variable o como lo hago ?


(function (jQuery) {
// Aqui dentro se llama jQuery… y si quieres le puedes poner $
})(tpj);

Saludos Cordiales.

Alfredo Sumaran

unread,
Sep 11, 2015, 12:04:19 PM9/11/15
to jsp...@googlegroups.com
Hola Miguel,

No entiendo muy bien tu problema, lo que entiendo es que tienes una página la cual ya tiene jQuery y a esta le estas agregando un formulario que contiene además de html <script>'s que vuelven a agregar jQuery al documento.

Cuál es el error en sí? por qué dices que no te funcionan las extensiones? Hay algún error JS en tu consola? Podrías no incluir nuevamente jQuery en tu formulario y reusar el jQuery de la página.



a.





Miguel Angel Marquina

unread,
Sep 11, 2015, 12:43:19 PM9/11/15
to jsp...@googlegroups.com
Hola Andres,

Gracias por tu rapida respuesta bueno el problema te lo explico en el siguiente grafico.

Imágenes integradas 1

--
Has recibido este mensaje porque estás suscrito al grupo "JavaScript Perú" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a jsperu+un...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Miguel Angel Marquina

unread,
Sep 11, 2015, 6:01:30 PM9/11/15
to jsp...@googlegroups.com

Igual sigue saliendo este error, Uncaught TypeError: $ is not a function :( ..

A pesar que hice asigne  en el Microsite.

<script type="text/javascript">
    var jQuery = tpj;
    jQuery.noConflict();

</script>


Alfredo Sumaran

unread,
Sep 11, 2015, 6:05:37 PM9/11/15
to jsp...@googlegroups.com
prueba con:

$ = jQuery = tpj;

no vuelvas a ejecutar .noConflict();


Miguel Angel Marquina

unread,
Sep 11, 2015, 6:14:24 PM9/11/15
to jsp...@googlegroups.com

Pucha no funka Alfredo, sale el mismo error .

Deberia funcionar cierto ?

Si en la pagina externa  hicieron esta configuracion 

var tpj=jQuery;
tpj.noConflict();

y como invocan a mi embebido , yo vengo a heredar la redifinicion [tpj] entonces porque al setear $ = jQuery = tpj; no son reconocidos.

<div id="bmEngine" style="background:#FFF;width:520px;min-height:370px;padding:5px;"><script type="text/javascript" src="http://vietur.dev.yarkan.pe/es/microsite/indira-viajes/engine" language="javascript"></script></div>

--
Has recibido este mensaje porque estás suscrito al grupo "JavaScript Perú" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a jsperu+un...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Andrés Muñoz

unread,
Sep 12, 2015, 12:19:50 AM9/12/15
to jsp...@googlegroups.com
Hola Miguel,

Segun e visto en el hilo, existen 2 jQuerys, uno el que usas y se reemplaza llamando a un nuevo iframe que daña el jQuery anfitrion por decirlo así verdad?
Lo que puedes hacer es guardar tu anfitrion en objeto para que jamas sea reemplazado, lo chevere de los objetos en JavaScript es que guardan en memoria lo que se les asigna a menos de que lo reasignes de nuevo, no como en el caso de las variables que hace que sucedan esas cosas, eso quiere decir por ejemplo:

//Guardando mi jQuery anfitrion
window.myOwnJquery = Jquery;

Con ello debes trabajar tu aplicación anfitriona ya que no perjudicaría inclusive tus librerías anfitrionas de tu aplicación con otras librerías de otras versiones de jQuery, espero sirva,

saludos,

Andrés Muñoz.

Miguel Angel Marquina

unread,
Sep 14, 2015, 1:39:44 PM9/14/15
to jsp...@googlegroups.com

Hola Andrés,

Tal como indicas la pagina donde invoca al formulario embebido, Este embebido vendria a ser el anfitrion.

Pagina Externa

http://indiraviajes.tur.ar/form-motor-de-ventas/

Embebido dentro de pagina externa


<div id="bmEngine" style="background:#FFF;width:520px;min-height:370px;padding:5px;">
<script type="text/javascript" src="http://hotelexpress.vietur.com.ar/es/microsite/indira-viajes/engine" language="javascript"></script>
</div>

Ya he probado con las formas mencionadas pero igual sigue saliendo este error TypeError: $ is not a function.

Saludos.



Miguel Angel Marquina

unread,
Sep 17, 2015, 1:29:29 PM9/17/15
to jsp...@googlegroups.com

La solucion fue estandariza los script jquery a una sola variable en algunos file se usaban $ y en otros jQuery asi que modifique $ a Jquery  y bueno ya esta funcionando .

Gracias a todos por el apoyo.


Reply all
Reply to author
Forward
0 new messages