Avatar billede mahyar Nybegynder
23. oktober 2011 - 16:43 Der er 6 kommentarer og
1 løsning

Querystring i javascrip

Querystring i javascript
hej jeg har nedenstående javascript. Og til det har jeg brug for at hente en værdi fra querystirng.

----------------------
<script type="text/javascript">
 
/*
* Simple player embed
*/

// The video to load.
var videoID = //en værdie fra querystring, der har har en key, der hedder ("VideoID");




// Lets Flash from another domain call JavaScript
var params = { allowScriptAccess: "always" };
// The element id of the Flash embed
var atts = { id: "ytPlayer" };
// All of the magic handled by SWFObject (http://code.google.com/ (...))
swfobject.embedSWF("http://www.youtube.com/ (...) +videoID+ "?version=3&enablejsapi=1&playerapiid=player1",
                  "ytapiplayer", "480", "295", "9", null, null, params, atts);

  </script>
Avatar billede olebole Juniormester
23. oktober 2011 - 19:17 #2
<ole>


<script type="text/javascript">
(function(){
    var sQ = location.search;
    window.JS_GET = {};
    if (sQ!="") {
        var aTmp, aQ = sQ.substr(1).split("&");
        for (var i=0,j=aQ.length; i<j; i++) {
            aTmp = aQ[i].split("=");
            JS_GET[aTmp[0]] = aTmp[1];
        }
    }
})();

if (JS_GET["id"]) alert(JS_GET["id"]);
if (JS_GET["navn"]) alert(JS_GET["navn"]);
</script>

<p>
    <a href="?id=123&navn=olebole">TEST</a>
</p>



/mvh
</bole>
Avatar billede olebole Juniormester
23. oktober 2011 - 21:55 #3
- og faktisk kan funktionen renses ned til:


(function(){
    var sQ = location.search;
    window.JS_GET = {};
    if (sQ.length>1) {
        sQ.substr(1).replace(/(.+?)=(.*?)(&|$)/g, function(a,b,c){JS_GET[b]=c});
    }
})();

Avatar billede olebole Juniormester
23. oktober 2011 - 22:48 #4
Hvis du vil have JS_GET til at ligne PHPs $_GET endnu mere, kan du prøve denne konstruktion:


<script type="text/javascript">
(function(){
    var sQ = location.search, i = 0;
    window.JS_GET = {length:0};
    if (sQ.length<2) {return}
    sQ.substr(1).replace(/(.+?)=(.*?)(&|$)/g, function(a,b,c){JS_GET[(i++)]=JS_GET=c;JS_GET.length=i});
})();

alert("JS_GET.length: "+JS_GET.length);
alert("JS_GET[1]: "+JS_GET[1]);
alert("JS_GET['navn']: "+JS_GET['navn']);
</script>

<p>
    <a href="?id=123&navn=OleBole">TEST</a>
</p>



Så har [b]JS_GET
en length property - og opfører sig både som et talindekseret array og det, man i PHP kender som et  associativt array.

Og nu tror jeg, scriptet er i en version, jeg vil arkivere til eget brug  *o)
Avatar billede olebole Juniormester
23. oktober 2011 - 22:52 #5
Jeg prøver lige igen - og passer på, når jeg skriver 'JS_GET[ b]'  *D


<script type="text/javascript">
(function(){
    var sQ = location.search, i = 0;
    window.JS_GET = {length:0};
    if (sQ.length<2) {return}
    sQ.substr(1).replace(/(.+?)=(.*?)(&|$)/g, function(a,b,c){JS_GET[(i++)]=JS_GET[ b]=c;JS_GET.length=i});
})();

alert("JS_GET.length: "+JS_GET.length);
alert("JS_GET[1]: "+JS_GET[1]);
alert("JS_GET['navn']: "+JS_GET['navn']);
</script>

<p>
    <a href="?id=123&navn=OleBole">TEST</a>
</p>



Så har JS_GET en length property - og opfører sig både som et talindekseret array og det, man i PHP kender som et  associativt array.
Avatar billede mahyar Nybegynder
31. oktober 2011 - 18:20 #6
Hej Ole

Jeg beklager min sene respons. Jeg har lige fået en lille datter, så jeg kunne ikke være online :)

Men jeg vil bede dig om at skrive funktionen så jeg kan få en VideoID ud af den. For jeg er ret dum til javascript. Det jeg har er som følgende:


Jeg har en URL der ser sådan ud: Player2.aspx?VideoID=-hrBbczS9I0

Min script ser foreløbig sådan ud, VideoID'en skal læses ud fra querystringen.
  <script type="text/javascript">
 
/*
* Simple player embed
*/

// The video to load.
var videoID = ???????????????????????


//var videoID = "-hrBbczS9I0"

// Lets Flash from another domain call JavaScript
var params = { allowScriptAccess: "always" };
// The element id of the Flash embed
var atts = { id: "ytPlayer" };
// All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
swfobject.embedSWF("http://www.youtube.com/v/" +videoID+ "?version=3&enablejsapi=1&playerapiid=player1",
                  "ytapiplayer", "480", "295", "9", null, null, params, atts);

  </script>
Avatar billede mahyar Nybegynder
22. november 2011 - 00:35 #7
:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester