Bonjour,

Je dois donner un lien js du genre <script src="http://exemple.com/widget.js?token=6157748"></script> pour qu'un client l'inclu dans son site web.
L'objectif est de mettre à sa disposition un chat qui apparaitra sous forme de frame, token étant un identifiant unique pour son compte.
Comment récupérer ce token dans la page widget.js??
Si ce n'est pas la bonne formule merci de l'aider à trouver une solution SVP.

voici ce que j'ai fait dans mon js mais il me retour null.

   var params = new window.URLSearchParams(window.location.search);
   var token = params.get('token');

Merci de m'aider à trouver une solution.

2 réponses


cyreel
Auteur
Réponse acceptée

Voici ce que j'ai finalement fai.

<script src="http://localhost/getjs/widget.js?token=2489654"></script>

contenu widget.js

var scripts = document.getElementsByTagName('script');
    var index = scripts.length - 1;
    var myScript = scripts[index];
    // myScript now contains our script object
    var queryString = myScript.src.replace(/^[^\?]+\??/,'');
    // queryString is "show=appts;user=veri"
    console.log(queryString);
    var params = parseQuery( queryString );

    function parseQuery ( query ) {
       var Params = new Object ();
       if ( ! query ) return Params; // return empty object
       var Pairs = query.split(/[;&]/);
       for ( var i = 0; i < Pairs.length; i++ ) {
          var KeyVal = Pairs[i].split('=');
          if ( ! KeyVal || KeyVal.length != 2 ) continue;
          var key = unescape( KeyVal[0] );
          var val = unescape( KeyVal[1] );
          val = val.replace(/\+/g, ' ');
          Params[key] = val;
       }
       return Params;
    }

Tu veux récupérer une variable PHP en JS ?
Si c'est bien ça alors tu dois utiliser l'objet XMLHttpRequest en JS

Exemple :
page.php

<?php
$maVariable=$_GET["variable"];

echo $maVariable;
?>

script.js

var xhr=new XMLHttpRequest();
    xhr.onreadystatechange=function() 
    {
        if(xhr.readyState==4 && xhr.status==200)
        {
            xhr.responseText;
        }
    };
    xhr.open("GET", "page.php");
    xhr.send();

Le contenu de ta variable GET est contenue dans "xhr.responseText", après libre à toi de faire un innerHTML ou de faire ce que tu veux

Voilà c'est aussi simple que ça