0
votes

Ouvrez une div dans la nouvelle fenêtre - CLOS CLICK

Les gars, j'essaie d'ouvrir une div dans une nouvelle fenêtre et j'ai essayé avec window.open , son fonctionnement comme prévu.

html: xxx

JS: xxx

http: // jsfiddle. NET / KZYJU /

NUMÉRO : Si la fenêtre est déjà ouverte, lorsque je clique à nouveau sur le bouton, il ne doit plus ouvrir une nouvelle fenêtre. L'utilisateur doit pouvoir voir une seule fenêtre. Dans mon cas si je clique sur le bouton 10 fois, 10 fenêtres sont ouvertes.

Les gars, veuillez m'aider à cela.


1 commentaires

Pour créer un exemple de reproductible minimal , le code doit être dans la question. Si ce violon est supprimé, cette question est inutile. (Stack Snippet ne fonctionne pas pour ce code mais vous voudrez peut-être lire: Comment créer un extrait de pile runnable? )


4 Réponses :


1
votes

Il suffit de jouer avec le drapeau booléen code>. Faites-le vrai lorsque vous cliquez pour la première fois. et restreindre cela avec ça.

p>

<div id="pass">pass this to the new window</div>
<a href="#" onclick="openWin()">click</a>


0 commentaires

1
votes

Étant donné que vous pouvez écrire un script dans la nouvelle fenêtre, vous pouvez utiliser des cookies pour stocker une donnée semblable à un drapeau, de sorte que la fenêtre est actuellement ouverte.

sur la page principale, vous avez d'abord défini le drapeau (je l'allai nommer Windowopen) sur False et vérifier chaque fois que le lien est cliqué sur. Si c'est faux, ouvrez une nouvelle fenêtre; Sinon, ne rien faire.

Dans la fenêtre suivante, définissez le drapeau sur true sur Ouvrir et définissez-le sur False à la fermeture.


0 commentaires

2
votes

Vous pouvez le faire comme ceci:

  var popup;

  function openWin() {
    if (popup && !popup.closed) {
      popup.focus();
      /* or do something else, e.g. close the popup or alert a warning */
    } else {
      var divText = document.getElementById("pass").outerHTML;
      popup = window.open('', '', 'width=200,height=100');
      var doc = popup.document;
      doc.open();
      doc.write(divText);
      doc.close();
    }
  }


0 commentaires

1
votes

Définir un nom de fenêtre dans votre appel à window.open

window.open ('', 'popupwindowname', 'largeur = 200, hauteur = 100');

Windowname est une Domstring spécifiant le nom du contexte de navigation (fenêtre ou onglet) dans lequel charger la ressource spécifiée; Si le nom n'indique pas un contexte existant, une nouvelle fenêtre est créée et reçoit le nom spécifié par Windowname. Ce nom peut ensuite être utilisé comme cible des liens et des formulaires en le spécifiant comme attribut cible de ou des éléments. Le nom ne doit pas contenir de gros espaces. N'oubliez pas que cela ne sera pas utilisé comme titre affiché par la fenêtre. Si la chaîne est vide, le navigateur créera une nouvelle fenêtre à chaque fois (ce comportement ne fonctionne pas lorsque la chaîne est remplacée par NULL).

Source


1 commentaires

La fenêtre se rafraîchie pour chaque clic. Certains peuvent-ils ouvrir la fenêtre d'où je suis parti?