Javascript y jQuery pregunta (FancyBox)Javascript y jQuery (FancyBox) pregunta
estoy usando la función Javascript a continuación para compartir Twitter (así como otros servicios; el código de función se simplifica a poco Twitter para esta pregunta) que toma la URL y el título de la página que se va a compartir y se invoca en el enlace con onclick. Eso da como resultado la carga de la página de Twitter compartida en una ventana emergente del navegador, es decir, <img src="/images/twitter_16.png" onclick="share.tw()" />
Para ser coherente con otros aspectos de diseño del sitio, lo que me gustaría poder hacer es tener la página de compartir de Twitter abrir no en una ventana de navegador estándar, sino en una ventana de Fancybox (jQuery).
Fancybox puede cargar una página externa en un iFrame cuando el enlace img o href contiene una clase (en este caso class="iframe"
) en el enlace y en la función de documento preparado en el encabezado.
Ahora, por supuesto, cuando le doy la clase iframe al enlace que también tiene el onclick share.tw()
, obtengo dos ventanas emergentes: una ventana emergente del navegador con la página correcta de Twitter compartida cargada, y una ventana emergente de Fancybox jQuery que muestra sitio 404.
¿Cómo puedo cambiar la función para usar Fancybox para presentar la página de Twitter compartida? ¿Es esa una forma correcta de abordarlo? ¿O hay una forma mejor, como implementar la función de compartir en jQuery también?
Gracias ...
Javascript función de compartir:
var share = {
tw:function(title,url) {
this.share('http://twitter.com/home?status=##URL##+##TITLE##',title,url);
},
share:function(tpl,title,url) {
if(!url) url = encodeURIComponent(window.location);
if(!title) title = encodeURIComponent(document.title);
tpl = tpl.replace("##URL##",url);
tpl = tpl.replace("##TITLE##",title);
window.open(tpl,"sharewindow"+tpl.substr(6,15),"width=640,height=480");
}
};
Se invoca, es decir:<img src="/images/twitter_16.png" onclick="share.tw()" />
función FancyBox, invocada por la adición de class="iframe"
en la IMG o enlace href
$(".iframe").fancybox({
'width' : '100%',
'height' : '100%',
'autoScale' : false,
'transitionIn' : 'none',
'transitionOut' : 'none',
'type' : 'iframe'
});
Gracias, eso está cerca. Lo que obtengo ahora es una ventana Fancybox en blanco de tamaño completo. Pero no sé cómo atrapar errores. El generador de perfiles de JS en las herramientas del desarrollador de Safari no muestra ningún error ... – markratledge
Cambiaría al uso de Firebug en Firefox. No he encontrado nada mejor. Otra cosa para probar puede ser usar un ancla ficticia, alterar sus atributos y hacer clic en ella. Actualizaré mi respuesta para mostrar un ejemplo. – wajiw
Además, ¿qué tamaño desea que sea? Simplemente cambie los atributos de altura/ancho si no desea que sea de tamaño completo. – wajiw