Jump to content
php.lv forumi
  • 0

fancybox popup in iframe


NBS

Question

Sveiki, vai kāds ir saksāries ar tādu problēmu, ka fancybox, kurš ielikts iekš iframe neatveras pa visu logu, bet gan tikai iframe logā?

 

$("a[rel=example_group]").fancybox({
'transitionIn'  : 'none',
'transitionOut'  : 'none',
'titlePosition'  : 'over',
'titleFormat'  : function(title, currentArray, currentIndex, currentOpts) {
return '<span id="fancybox-title-over">Attēls ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? '   ' + title : '') + '</span>';
}
  });

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

Es domāju, ka ar šādu problēmu ir saskāries ikviens, kas izmanto iframe.

Saturs, kas atrodas iframe, nevar izkļūt ārpus iframe robežām nedz platumā, nedz augstumā!

Ja galvenā lapa un iframe atrodas uz viena domēna, tad vēl var salīdzinoši vienkārši uztaisīt kādu apkārtceļu, bet ja Tev nav pieejas galvenai lapa, tad atliks tikai aprobežoties ar iframe.

Link to comment
Share on other sites

  • 0

Ar "salīdzinoši vienkārši uztaisīt kādu apkārtceļu" es nebiju domājis, ka kādam būs jau gatavs risinājums kā atrisināt Tavu problēmu.

Ja tu tiešām esi programmētājs pakustini smadzenes.

 

1) Ja lapas tiešām atrodas uz viena domēta, tad nafig Tu lieto Iframe

2) Ja tomēr bez iframe Tu nevari izdzīvot, tad ātrākais un tizlākais risinājums būs apmēram šāds..

window.top.$('body').append($('<div/>').attr('extend_iframe').html( $("a[rel=example_group]").clone()).hide());
//galeriju slēptā veidā ieliek galvenajā logā
window.top.$("#extend_iframe a[rel=example_group]").fancybox(...);
//aktivize fancybox uz sleptajiem elementiem.
$("a[rel=example_group]").click(function(e){ e.preventDefault(); window.top.$("#extend_iframe a[rel=example_group]").get($(this).index()).trigger('click')});
//tipa aizsūtam click eventam zinju par kliku...

Tas viss ir zinātniskā fantastika un nesmu drošs ka tas strādā!

Edited by draugz
Link to comment
Share on other sites

  • 0

Ja ir viena bilde, šo problēmu var atrisināt sekojošā veidā:

 $("a[rel=example_group]").click(function(e) {
e.preventDefault();
window.parent.$.fancybox({
   	href: $(this).attr("href")
});
 });

 

taču ja ir nepieciešama galerija, tad pārējās bildes var padot kā parametru uz Fancybox izmantojot PHP.

$("a[rel=example_group]").click(function(e) {
e.preventDefault();
window.parent.$.fancybox([
{ href: $(this).attr("href") },
<?php echo $imgArray ?>
]);
});

 

gaidam komentārus no profiņiem ;)

Edited by SoWhat
Link to comment
Share on other sites

  • 0

Šodien radās brīvs brīdis un nolēmu notestēt vai mans risinājums var strādāt :)

Nedaudz pielabojot sintaksi, viss strādā ideāli :)

 

Idejas būtība

1) Fancybox js un css ir jāiekļauj top freimā!!!!

2) iframe ieliekot šādu kodu

  window.top.$('body').append($('<div/>').attr('id','extend_iframe').html( $("a[rel=example_group]").clone()).hide());
  window.top.$("#extend_iframe a[rel=example_group]").fancybox({
'transitionIn'  : 'none',
'transitionOut'  : 'none',
'titlePosition'  : 'over',
'titleFormat'  : function(title, currentArray, currentIndex, currentOpts) {
	return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? '   ' + title : '') + '</span>';
}
  });
  $("a[rel=example_group]").click(function(e){ e.preventDefault();
window.top.$(window.top.$("#extend_iframe a[rel=example_group]").get($(this).index()-1)).trigger('click')}
  );

 

Ja nu kādu interesē pilns kods, tad to var paskatīties šeit http://failiem.lv/u/narooum

Link to comment
Share on other sites

  • 0

Pirmkārt index.html ir galvenais fails un index_iframe.html ir fails, kas satur iframe saturu!

Otrkārt dažos parlūkos novērots, ka file://c:/ reizēm neļauj piekļūt window.top skriptiem :) tāpēc labāk notestēt uz webservera...

Treškārt http://failiem.lv/u/lzmbwju ir pieejams uzlabots variants, kur saliktas ļoti daudz pārbaudes :)

Edited by draugz
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...