The webpage you are viewing is trying to close the window


Pour mon premier tuto, voici une petite astuce que j’ai découverte en travaillant avec des pop-up.
Lors du développement d’une page dans laquelle se trouve un bouton fermant le pop-up, vous vous êtes peut-être retrouvé confronter à cette erreur.


Lorsque je me suis retrouvé face à cette erreur, je travaillais avec une webpart classique dans laquelle se trouvait un lien qui ouvrait le pop-up, lien présent sous la forme d’un a href.

 
protected override void CreateChildControls() {     
string urlPage = string.Format("{0}/_layouts/TutoPopUp.aspx",SPContext.Current.Web.Url);     
Controls.Add(new LiteralControl(string.Format(@"<a href='{0}' target='_blank' >Mon lien </a>", urlPage)));  } 

Ce lien ouvrait correctement le pop-up de confirmation (une page applicative contenant les instructions nécessaires à la suppression d’un élément d’une liste).

En cliquant sur « oui » l’élément était supprimé puis l’événement du bouton « non », à savoir refermer le pop-up, était appelé.

 
public void btnCancel_Click(object sender, EventArgs e) {     
Page.Response.Write(@"<script language='javascript'> window.close();</script>"); 
} 

Et à ce moment le message d’erreur apparaissait.

Cette erreur vient en fait d’une règle du JavaScript, à savoir qu’on ne peut fermer sans erreur une fenêtre via du JavaScript que si elle a été ouverte via JavaScript. 

Pour régler le problème il faut donc ouvrir le pop-up de la manière suivante

 
protected override void CreateChildControls() {      
string urlPage = string.Format("{0}/_layouts/TutoPopUp.aspx",SPContext.Current.Web.Url);      
Controls.Add(new LiteralControl(string.Format(@"<a onclick='javascript:window.open (""{0}"");'>Mon lien </a>", urlPage))); } 

En ouvrant le pop-up via une fonction JavaScript, l’erreur ne se présente plus lors de sa fermeture.

Christopher.

Article initialement posté le 22/04/2010 sur Areaprog

Cet article, publié dans SharePoint 2007, SharePoint 2010, est tagué , , . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s