2011-02-22 3 views
2

J'utilise ce code (standard FB Like):Comment cacher iframe avec le bouton FB Like sur click?

<div id="like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage%2Fto%2Flike&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe></div> 

Je dois cacher la div complète (ou iframe) lorsque l'utilisateur clique dessus. J'ai essayé l'événement onclick mais cela n'a pas fonctionné à iframe.

Comment est-ce que je peux faire ceci?

Répondre

0

Vous pouvez faire quelque chose comme ceci:

HTML:

<div id="like"><iframe id="facebookFrame" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage%2Fto%2Flike&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe></div> 

Javascript:

document.getElementById('facebookFrame').contentWindow.document.body.onclick = 
function() { 
    // hide your iframe here or do whatever 
    document.getElementById('facebookFrame').style.display = "none"; 
    alert("iframe was clicked"); 
} 
+0

Je doute que cela soit permis par le navigateur – mplungjan

+0

je suis d'accord avec cela. –

0

Je nai encore fait. Je viens de trouver une bonne ressource http://softwareas.com/cross-domain-communication-with-iframes

peut-être comme ça

parent.frames[1].location.href -> set to own url plus #anyanchor 

donc il ne sera rechargé, puis accéder à la fonction js de la fenêtre principale

document.getElementById('facebookFrame').style.display = "none"; 
0

De façon réaliste, je pense que votre meilleur pari est de placer un autre, cette fois transparent, div sur le iframe. Définissez votre gestionnaire de clic sur cela.

0

Vous pouvez également essayer cette solution:

FB.Event.subscribe('edge.create', function(href, widget) { 
     your call back function to hide the iframe 
}); 
Questions connexes