2008-12-17 7 views
1

Y a-t-il un moyen de déterminer dans le code de la page enfant qui a été ouvert par la commande window.open() javascript de la page parent? La page contextuelle contient un contrôle utilisateur utilisé par d'autres pages qui ne proviennent pas d'une commande window.open() et je souhaite ajouter dynamiquement des fonctionnalités pour fermer la page une fois que l'utilisateur a terminé sa tâche. la page enfant.Déterminer si la page aspx a été ouverte par une commande window.open()

Il s'agit d'une application ASP.NET C# 3.5.

Répondre

5

Pouvez-vous passer à travers un drapeau dans la chaîne de requête qui indiquera d'où la fenêtre a été engendrée?

+0

J'ai créé une propriété sur l'utilisateur conrtrol pour indiquer si elle contenait une page générée par une fenêtre pop-up –

0

Peut-être que c'est faux, mais je ne pense pas qu'il existe un moyen direct de le faire. Vous pouvez toujours essayer de l'identifier à partir d'une URL distincte, par ex. "MyChildForm.aspx? From = WinOpen"

--Edit-- Battu à par Galwegian

3

en javascript, vous pouvez vérifier si window.opener est null

0

Vous pouvez ajouter un peu de javascript dans le usercontrol pour tester si window.opener est non null et sur cette base cacher ou afficher l'interface utilisateur de la page de fermeture.

1

La demande de la fenêtre enfant aura probablement un en-tête HTTP Referer (referrer) qui pointe vers la page parente. Vous pouvez vérifier cela à l'arrière ou vérifier window.opener sur le côté client.

+0

J'ai essayé cette solution et elle a lancé une exception NullReferenceException lorsque j'ai essayé d'obtenir Request.UrlReferrer.AbsolutePath –

Questions connexes