Created
May 9, 2012 13:58
-
-
Save dandelionmood/2644682 to your computer and use it in GitHub Desktop.
Contourner le blocage automatique des popups
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Fonction permettant d'ouvrir une popup centrée | |
* aux dimensions souhaitées. | |
* | |
* @param string url de la page à ouvrir. | |
* @param int largeur de la fenêtre | |
* @param int hauteur de la fenêtre | |
*/ | |
function OuvrirFenetrePopup(pageURL, w, h) | |
{ | |
lien_ouverture_popup = $('#lien-ouverture-popup'); | |
lien_ouverture_popup | |
.attr('href', pageURL) | |
.data('w', w) | |
.data('h', h) | |
.trigger('click'); | |
} | |
/** | |
* Récupérer la fenêtre qui vient d'être ouverte. | |
* @returns window la fenêtre. | |
*/ | |
function RecupererFenetrePopup() { | |
// La référence à la fenêtre à ouvrir est enregistrée dans le DOM par jQuery. | |
return $('#lien-ouverture-popup').data('win'); | |
} | |
// Code exécuté dès la fin du chargement du DOM. | |
$(document).ready(function() { | |
// Mise en place du lien invisible au chargement de la page, on l'ajoute | |
// à la fin du document. | |
var lien_ouverture_popup = $('<a></a>') | |
.attr('id', 'lien-ouverture-popup') | |
.attr('href', 'javascript:void(0);') | |
.attr('style', 'display: none;'); | |
$('body').append( lien_ouverture_popup ); | |
// Un clic sur ce lien invisible va déclencher l'ouverture de la popup. | |
lien_ouverture_popup.click(function() { | |
var w = $(this).data('w'), | |
h = $(this).data('h'), | |
pageURL = $(this).attr('href'); | |
var left = (screen.width/2)-(w/2); | |
var top = (screen.height/2)-(h/2); | |
var targetWin = window.open( | |
pageURL, | |
'_blank', | |
'toolbar=no, location=no, directories=no, status=no, menubar=no, '+ | |
'scrollbars=yes, resizable=no, copyhistory=no, width='+ | |
w+', height='+h+', top='+top+', left='+left | |
); | |
// On enregistre la référence à la fenêtre qui vient d'être ouverte pour | |
// pouvoir la récupérer au besoin à travers la méthode | |
// RecupererFenetrePopup(). | |
lien_ouverture_popup.data('win', targetWin); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment