9
votes

Appeler des paramètres d'URL dans un fichier .js

J'appelle un fichier .js dans un fichier HTML. Sur l'URL au fichier .js, je souhaite inclure un paramètre accessible au code dans le fichier .js.

Par exemple:

Je veux pouvoir transmettre la valeur d'identification à une fonction dans le fichier jquery_widget.js, à l'aide de JQuery. Comment ça est fait?

reconnaissant pour toute l'aide!


0 commentaires

8 Réponses :


2
votes

Vous utilisez quelque chose comme PHP

your html file:
<script type="text/javascript" src="yourFile.php?var=123">  

yourFile.php:  
// <?php echo($_GET["var"]); ?>


0 commentaires

7
votes

Vous ne pouvez pas le faire comme ça: vous devez déclarer la variable avant de charger le script. Exemple: xxx

de cette manière, la variable sera prête pour votre script.

Une autre solution consiste à utiliser un script PHP, qui peut ensuite utiliser la variable d'obtention. Dans ce cas, assurez-vous de dire via un appel d'en-tête () que vous émettez JavaScript xxx

et ip.php xxx


0 commentaires

1
votes

Approchez le problème différemment:

  1. Inclure votre fichier .js
  2. Appelez une fonction définie dans votre fichier .js avec un paramètre (c'est-à-dire votre valeur d'identification)

0 commentaires

0
votes
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href
                     .indexOf('?') + 1).split('&');

    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }

    return vars;
}
Source: http://snipplr.com/view.php?codeview&id=799

1 commentaires

Cela ne fonctionnera pas .. Il demande des paramètres URL au .js inclusion .. non à la page HTML ..



0
votes

Les fichiers HTML et JavaScript sont des ressources statiques et ne seront interprétées que par le navigateur client, de sorte que vous ne pouvez transmettre aucun paramétrage de requête à ces valeurs et les lire à l'intérieur, ce que vous pouvez effectuer est de générer de manière dynamique vos fichiers JavaScript avec des paramètres de paramètres Serverside puis inclure-le dans le cadre de la page. Ou une autre manière simple consiste à écrire votre fichier JS sous forme de fichier PHP ou JSP et définissez le type de contenu de la page sur TEXT / JavaScript et vous pouvez accéder à tous les paramètres de l'intérieur


0 commentaires

0
votes

Si vous essayez de lire des paramètres de l'URL, j'ai utilisé:

function PageQuery(q) {
    if (q.length > 1) this.q = q.substring(1, q.length);
    else this.q = null;
    this.keyValuePairs = new Array();
    if (q) {
        for (var i = 0; i < this.q.split("&").length; i++) {
            this.keyValuePairs[i] = this.q.split("&")[i];
        }
    }
    this.getKeyValuePairs =  function() { return this.keyValuePairs; }
    this.getValue = function(s) {
        for (var j = 0; j < this.keyValuePairs.length; j++) {
            if (this.keyValuePairs[j].split("=")[0] == s)
                return this.keyValuePairs[j].split("=")[1];
        }
        return false;
    }
    this.getParameters = function() {
        var a = new Array(this.getLength());
        for (var j = 0; j < this.keyValuePairs.length; j++) {
            a[j] = this.keyValuePairs[j].split("=")[0];
        }
        return a;
    }
    this.getLength = function() { return this.keyValuePairs.length; }
}
function queryString(key) {
    var page = new PageQuery(window.location.search);
    return unescape(page.getValue(key));
}
function displayItem(key) {
    if (queryString(key) == 'false') {
        document.write("you didn't enter a ?name=value querystring item.");
    } else {
        document.write(queryString(key));
    }
}


0 commentaires

1
votes

Le fichier JavaScript en soi n'est pas au courant de l'URL en cours de chargement.

Ce que vous pouvez faire est d'attribuer un identifiant à la balise code> Script code> que vous incluez dans la page HTML, puis attrapez l'attribut SRC à travers JQuery. En analysant la valeur de l'URL, vous pouvez extraire le paramètre. P>

<script id='widgetJs' src='...'></script>

var url = $("#widgetJs").attr("src");
var q = url.split("?")[1];
if (q) {
    var params = q.split("&");
    etc. etc... 
    i'm not even going to explain further because there are better solutions.
}


0 commentaires

0
votes

fichier cshtml xxx

couverture.js xxx


0 commentaires