Maison > cadre php > PensezPHP > thinkphp fermer la page actuelle

thinkphp fermer la page actuelle

WBOY
Libérer: 2023-05-26 10:18:37
original
786 Les gens l'ont consulté

Dans le développement web, il est parfois nécessaire d'implémenter la fonction de fermeture de la page en cours dans thinkphp. Cette fonction semble simple, mais il existe quand même quelques astuces pour la mettre en œuvre. Cet article présentera comment implémenter la fonction de fermeture de la page actuelle dans thinkphp.

1. Utilisez Javascript pour fermer la page

La façon la plus courante de fermer la page est d'utiliser la fonction window.close() de Javascript. L'implémentation est la suivante :

<script type="text/javascript">
    window.close();
</script>
Copier après la connexion

Cependant, l'utilisation directe de cette fonction aura des limitations dans certains navigateurs. Par exemple, Chrome demandera "Cette page essaie de fermer la fenêtre. Voulez-vous continuer ?". En effet, les navigateurs ont ajouté certains mécanismes de sécurité pour empêcher les pages malveillantes de fermer le navigateur de l'utilisateur.

Si vous souhaitez éviter ce problème, vous pouvez ajouter un attribut target="_blank" au lien, de sorte qu'après avoir cliqué sur le lien, une nouvelle fenêtre s'ouvrira et l'opération de fermeture pourra être effectuée dans cette fenêtre.

2. Utilisez PHP pour fermer la page

Si la fenêtre est ouverte via la fonction d'en-tête de PHP, vous pouvez également utiliser la fonction d'en-tête de PHP pour la fermer. Le code est le suivant :

header("Content-Type: text/html; charset=utf-8");     
$closeHtml  = "<html>
";
$closeHtml .= "<head>
";
$closeHtml .= "<title>关闭窗口</title>
";
$closeHtml .= "<script type="text/javascript">
";
$closeHtml .= "window.close();
";
$closeHtml .= "</script>
";
$closeHtml .= "</head>
";
$closeHtml .= "<body>
";
$closeHtml .= "</body>
";
$closeHtml .= "</html>";
echo $closeHtml;
Copier après la connexion

L'avantage de cette méthode est qu'elle permet d'éviter les restrictions du mécanisme de sécurité du navigateur. Cependant, puisque la fonction d'en-tête est utilisée, vous devez vous assurer que rien n'est sorti avant de sortir l'en-tête, sinon un avertissement sera généré.

3. Utilisez l'URL pour fermer la page

Une autre façon consiste à utiliser l'URL pour fermer la fenêtre actuelle. La méthode spécifique consiste à ajouter une URL spéciale au lien de la fenêtre à fermer, puis à effectuer l'opération de fermeture lorsque cette URL est détectée dans la fenêtre. Le code est le suivant :

<script type="text/javascript">
    if (window.location.search.indexOf('close=1') != -1) {
        window.opener = null;
        window.close(); 
    }
</script>
Copier après la connexion

Ici nous ajoutons un paramètre close=1 à l'URL Lorsque ce paramètre est détecté, l'opération de fermeture est effectuée. Cependant, cette méthode présente également certaines limites. Par exemple, l'utilisateur peut modifier manuellement l'URL pour contourner l'opération d'arrêt.

Résumé :

Les trois méthodes ci-dessus pour implémenter Thinkphp pour fermer la page actuelle. Chaque méthode a ses propres avantages et inconvénients. Si vous devez éviter les restrictions du mécanisme de sécurité du navigateur, vous pouvez utiliser la fonction d'en-tête de PHP ; si vous devez empêcher les utilisateurs de modifier manuellement l'URL, vous pouvez utiliser la première ou la deuxième méthode. En général, la première méthode suffit à répondre aux besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal