Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JS]Ouvrir une nouvelle fenêtre a une taille présise

    8 juin 2006 à 16:26:23

    Bonjour,
    Je suis en train de refaire mon chat, j'aimerais savoir comment ouvrir une nouvelle page et comment la fermer grâce a des liens (pour des smileys).
    Et si ce n'est pas trop compliqué j'aimerais savoir comment envoyer le code du smiley directement dans le "input" de la première page... (je sais le faire mais sur la même page...)

    Merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      8 juin 2006 à 16:41:55

      j'ai pas trop compris le "..et comment la fermer grâce à des liens (pour des smileys).." ?

      Sinon pour répondre à la question du sujet :
      <a href="javascript:window.open('URL','nom_de_fenetre','options')">


      Pour les options tu les as à cette page : ici !
      • Partager sur Facebook
      • Partager sur Twitter
        8 juin 2006 à 17:27:07

        bah je voudrais faire un lien pour fermer la fenêtre ^^ et je précise que c'est une page de smileys ;)
        Sinon, ta technique, ça me permet pas de choisir la taille de la fenêtre...
        et ... je ne suis pas un surdoué du javascript ^^ donc le tuto comment ça marche.... rien compris :euh:
        • Partager sur Facebook
        • Partager sur Twitter
          8 juin 2006 à 17:53:54

          Tu as juste à spécifier les parametres height et width pour faire ce que tu veux:


          <a href="http://www.site.fr/" onclick="window.open(this.href,'popup','height=500 , width=500');return false;">site</a>

          (par exemple)

          Pour fermer une fenêtre:

          a href="Javascript:window.close()">Fermer la fenêtre</a>
          • Partager sur Facebook
          • Partager sur Twitter
            8 juin 2006 à 17:54:43

            Voilà le code pour fermer une fenêtre :

            <a href="javascript: self.close()">Texte ou balise de l’image pour fermer la fenêtre</a>


            Pour ouvrir la fenêtre dans une nouvelle page, j'utilise une fonction spécifique en JavaScript, située sur une autre page (chargée au lancement de la page HTML).

            [EDIT] Doublé :lol:
            • Partager sur Facebook
            • Partager sur Twitter
              8 juin 2006 à 20:50:43

              Merci pour votre aide :) ça m'aide déjà bien.
              Mais comment faire pour afficher le code du smiley dans la zone de texte (zone de texte qui est dans une autre page...)?
              • Partager sur Facebook
              • Partager sur Twitter
                12 juin 2006 à 9:34:55

                Comme je dis bien souvent, quand tu sais pas comment marche quelquechose sur un autre site, REGARDE LA SOURCE (ça tombe bien, ça marche sur le SDZ !).
                • Partager sur Facebook
                • Partager sur Twitter
                  12 juin 2006 à 12:33:54

                  :p j'ai déjà pensé a regarder...
                  mais bon j'ai du mal a croire qu'il faille tout ça:
                  var textarea = opener.id_textarea;

                  var smilies = new Array(':magicien:',':colere:',':diable:',':ange:',':ninja:','&gt;_&lt;',':pirate:',':zorro:',':honte:',':soleil:',':\'(',':waw:',':)',':D',';)',
                                          '
                  :p',':lol:',':euh:',':(',':o',':colere:','o_O','^^',':-°');
                  var smilies_url = new Array('
                  magicien.png','angry.gif','diable.png','ange.png','ninja.png','pinch.png','pirate.png','zorro.png','rouge.png','soleil.png',
                                          '
                  pleure.png','waw.png','smile.png','heureux.png','clin.png','langue.png','rire.gif','unsure.gif','triste.png','huh.png','mechant.png',
                                          '
                  blink.gif','hihi.png','siffle.png');

                  function insere(smiley)
                  {
                  var champ = opener.document.getElementById(textarea);
                  var scroll = champ.scrollTop;

                  smiley = '
                  ' + smiley + ' ';

                          if (champ.curseur)
                          {
                          champ.curseur.text = smiley;
                          }
                          else if (champ.selectionStart != '
                  undefined' && champ.selectionEnd != 'undefined')
                          {
                          var debut = champ.value.substring(0, champ.selectionStart);
                          var fin = champ.value.substring(champ.selectionEnd);
                          champ.value = debut + smiley + fin;
                          champ.focus();
                          champ.setSelectionRange(debut.length + smiley.length, champ.value.length - fin.length);
                          }
                          else
                          {
                          champ.value  += smiley;
                          champ.focus();
                          }
                  champ.scrollTop = scroll;

                  var champ = opener.document.getElementById(textarea);
                  var div_prev = opener.document.getElementById('
                  prev_'+textarea);
                  var contenu = champ.value;

                          if (document.body.scrollTop)
                          var scroll = opener.document.body.scrollTop;
                          else
                          var scroll = opener.window.pageYOffset;

                          if (champ.selectionStart != '
                  undefined' && !champ.curseur)
                          {
                          var pos = champ.selectionStart;
                          contenu = remplace(remplace(contenu.substring(0, pos),'
                  >','&gt;'),'<','&lt;') + '<a href="#" name="prev_ancre_suivi" id="prev_ancre_suivi"></a>' + remplace(remplace(contenu.substring(pos),'>','&gt;'),'<','&lt;');
                          }
                          else
                          contenu = remplace(remplace(contenu,'
                  >','&gt;'),'<','&lt;');

                  contenu = remplace(contenu, "\n", '
                  <br />');

                  contenu = contenu.replace(/&lt;gras&gt;([\s\S]*?)&lt;\/gras&gt;/g, '
                  <strong>$1</strong>');
                  contenu = contenu.replace(/&lt;souligne&gt;([\s\S]*?)&lt;\/souligne&gt;/g, '
                  <span class="souligne">$1</span>');
                  contenu = contenu.replace(/&lt;italique&gt;([\s\S]*?)&lt;\/italique&gt;/g, '
                  <span class="italique">$1</span>');
                  contenu = contenu.replace(/&lt;barre&gt;([\s\S]*?)&lt;\/barre&gt;/g, '
                  <strike>$1</strike>');
                  contenu = contenu.replace(/&lt;couleur nom="(orange|noir|marron|vertf|olive|marine|violet|bleugris|argent|gris|rouge|vertc|jaune|bleu|rose|turquoise|blanc)"&gt;([\s\S]*?)&lt;\/couleur&gt;/g, '
                  <span class="$1">$2</span>');
                  contenu = contenu.replace(/&lt;police nom="(arial|times|courrier|impact|geneva|optima)"&gt;([\s\S]*?)&lt;\/police&gt;/g, '
                  <span class="$1">$2</span>');
                  contenu = contenu.replace(/&lt;taille valeur="(ttpetit|tpetit|petit|gros|tgros|ttgros)"&gt;([\s\S]*?)&lt;\/taille&gt;/g, '
                  <span class="$1">$2</span>');
                  contenu = contenu.replace(/&lt;image&gt;([\s\S]*?)&lt;\/image&gt;/g, '
                  <img src="$1" alt="Image" />');
                  contenu = contenu.replace(/&lt;position valeur="(gauche|droite|centre|justifie)"&gt;([\s\S]*?)&lt;\/position&gt;/g, '
                  <div class="$1">$2</div>');
                  contenu = contenu.replace(/&lt;flottant valeur="(gauche|droite)"&gt;([\s\S]*?)&lt;\/flottant&gt;/g, '
                  <div class="flot_$1">$2</div>');
                  contenu = contenu.replace(/&lt;lien&gt;([\s\S]*?)&lt;\/lien&gt;/g, '
                  <a href="$1">$1</a>');
                  contenu = contenu.replace(/&lt;lien url="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/lien&gt;/g, '
                  <a href="$1">$2</a>');
                  contenu = contenu.replace(/&lt;email&gt;([\s\S]*?)&lt;\/email&gt;/g, '
                  <a href="mailto:$1">$1</a>');
                  contenu = contenu.replace(/&lt;email valeur="([\s\S]*?)&gt;([\s\S]*?)"&lt;\/email&gt;/g, '
                  <a href="mailto:$1">$2</a>');
                  contenu = contenu.replace(/&lt;(information|attention|erreur|question)&gt;([\s\S]*?)&lt;\/\1&gt;/g, '
                  <div class="rmq $1">$2</div>');
                  contenu = contenu.replace(/&lt;liste&gt;\s*(<br \/>)?\s*([\s\S]*?)\s*(<br \/>)?\s*&lt;\/liste&gt;/g, '
                  <ul>$2</ul>');
                  contenu = contenu.replace(/&lt;liste type="(disque|cercle|rectangle|rien)"&gt;\s*(<br \/>)?\s*([\s\S]*?)\s*(<br \/>)?\s*&lt;\/liste&gt;/g, '
                  <ul class="liste_$1">$3</ul>');
                  contenu = contenu.replace(/&lt;liste type="([1iIaA])"&gt;\s*(<br \/>)?\s*([\s\S]*?)\s*(<br \/>)?\s*&lt;\/liste&gt;/g, '
                  <ol class="liste_$1">$3</ol>');
                  contenu = contenu.replace(/&lt;puce&gt;([\s\S]*?)&lt;\/puce&gt;\s*(<br \/>)?\s*/g, '
                  <li>$1</li>');

                  var i = 0;
                          while ((contenu.search(/&lt;citation nom=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g) != -1 || contenu.search(/&lt;citation&gt;([\s\S]*?)&lt;\/citation&gt;/g) != -1)
                          && i < 20)
                          {
                          contenu = contenu.replace(/&lt;citation nom=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '
                  <br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>');
                          contenu = contenu.replace(/&lt;citation&gt;([\s\S]*?)&lt;\/citation&gt;/g, '
                  <br /><span class="citation">Citation</span><div class="citation2">$1</div>');
                          i++;
                          }

                          for (i=0;i<smilies.length;i++)
                          contenu = remplace(contenu, smilies[i], '
                  <img src="Templates/images/smilies/'+smilies_url[i]+'" alt="Smiley" class="smilies" />');

                  div_prev.innerHTML = contenu;
                          if (opener.document.getElementById('
                  prev_ancre_suivi'))
                          opener.document.getElementById('
                  prev_ancre_suivi').focus();
                  opener.document.getElementById(textarea).focus();
                  }

                  function remplace(data, search, replace)
                  {
                  var temp = data;
                  var longueur = search.length;
                          while (temp.indexOf(search) > -1)
                          {
                          pos= temp.indexOf(search);
                          temp = (temp.substring(0, pos) + replace + temp.substring((pos + longueur), temp.length));
                          }
                  return temp;
                  }
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 juin 2006 à 13:14:26

                    Si j'ai bien compris ce code, ceci doit suffir (le reste, c'est pour mettre à jour l'aperçu en temps réel) :
                    var textarea = opener.id_textarea;

                    // les arrays des smileys
                    var smilies = new Array(':magicien:',':colere:',':diable:',':ange:',':ninja:','&gt;_&lt;',':pirate:',':zorro:',':honte:',':soleil:',':\'(',':waw:',':)',':D',';)',
                                            '
                    :p',':lol:',':euh:',':(',':o',':colere:','o_O','^^',':-°');
                    var smilies_url = new Array('
                    magicien.png','angry.gif','diable.png','ange.png','ninja.png','pinch.png','pirate.png','zorro.png','rouge.png','soleil.png',
                                            '
                    pleure.png','waw.png','smile.png','heureux.png','clin.png','langue.png','rire.gif','unsure.gif','triste.png','huh.png','mechant.png',
                                            '
                    blink.gif','hihi.png','siffle.png');

                    function insere(smiley)
                    {
                    var champ = opener.document.getElementById(textarea);
                    var scroll = champ.scrollTop;

                    smiley = '
                    ' + smiley + ' ';

                            // on place le smiley à la position désirée
                            if (champ.curseur)
                            {
                            champ.curseur.text = smiley;
                            }
                            else if (champ.selectionStart != '
                    undefined' && champ.selectionEnd != 'undefined')
                            {
                            var debut = champ.value.substring(0, champ.selectionStart);
                            var fin = champ.value.substring(champ.selectionEnd);
                            champ.value = debut + smiley + fin;
                            champ.focus();
                            champ.setSelectionRange(debut.length + smiley.length, champ.value.length - fin.length);
                            }
                            else
                            {
                            champ.value  += smiley;
                            champ.focus();
                            }
                    // on remet la zone à sa place (barres de défilement)
                    champ.scrollTop = scroll;

                    var champ = opener.document.getElementById(textarea);
                    var div_prev = opener.document.getElementById('
                    prev_'+textarea);
                    var contenu = champ.value;

                            if (document.body.scrollTop)
                            var scroll = opener.document.body.scrollTop;
                            else
                            var scroll = opener.window.pageYOffset;
                    }


                    D'abord, on récupère l'id du champs gràce à une variable JavaScript créée sur la page principale (opener signifie la page qui a ouvert le POP-UP) :
                    var textarea = opener.id_textarea;

                    Ensuite, on crée des array comprenants tous les smileys (et tous les équivalents en images, mais je pense que c'est pour l'aperçu en temps réel)

                    Enfin, la fonction : on récupère le champs à remplir, on regarde la position du curseur de la souris (|), ainsi que la position des barres de défilement.

                    On place le smileys à l'endroit prévu : il semble qu'ils traitent tous les cas, lorsque le curseur à une place particulière, lorsqu'il sélectionne un morceau de texte, lorsqu'il n'existe pas ...

                    On remet le champs dans la position initiale (les barres de défilement).

                    Et la partie que je n'ai pas laissée, c'est l'aperçu en temps réel ...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 juin 2006 à 18:53:23

                      <a href="Templates/html/tous_smilies.html" onclick="ouvrir_page(this.href,'smilies',250,500); id_textarea = 'texte'; return false;"><img src="Templates/images/designs/4/zcode/popup.png" alt="Ouvre une nouvelle fenêtre" /> Autres smilies</a><br/>


                      il y a ça aussi...
                      J'ai pas tout compris dans ce que tu explique....
                      Avec le script d'aperçu j'avais aucune chance de comprendre :-°

                      Mais a mon avis si je recopie tout le script ça devrait le faire, nan ? (je sais c'est pas beau mais moi et le javascript ça fait 3 (ouai ya un grand espace entre les 2 ^^ ))
                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 juin 2006 à 20:19:47

                        Ton code, il ouvre juste une nouvelle fenêtre, rien de plus.

                        Sinon, tu peux à la limite recopier tout le code, mais garde les commantaires : ce sont les scripts du SDZ (et il faut modifier les tableaux des smileys). Peut-être éxiste-t-il quelques scripts tout fait plus simples ...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 juin 2006 à 20:30:48

                          oui... je supose mais en fait c'est ce que je demande sur ce topic ^^
                          Pour l'instant je fait des grosses modifs sur mon site je redonnerais de mes nouvelles ;)
                          • Partager sur Facebook
                          • Partager sur Twitter

                          [JS]Ouvrir une nouvelle fenêtre a une taille présise

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown