Как я могу передать значения из строки запроса в JavaScript? - PullRequest
3 голосов
/ 04 ноября 2010

Теперь, когда я узнал, как передавать значения в объект SWF с помощью flashvars , не могли бы вы подсказать мне, как я могу передать значения из строки запроса в JavaScript?

Что я имею в виду? В следующем примере я жестко запрограммировал XML-файл для загрузки в объект SWF.

<script type="text/javascript">
    var so = new SWFObject("preview.swf", "", "100%", "100%", "9", "#ffffff");
    so.addParam("allowFullScreen", "true");
    so.addParam("scale", "noscale");
    so.addParam("menu", "false");
    so.addVariable("xmlPath", "xml/exampleData.xml");
    so.write("flashcontent");
</script>

Поскольку XML-файл создается динамически, XML-файл должен быть загружен из значения строки запроса. (Наверное).

Предположим, мой адрес http://www.example.com/load.aspx?XmlFile=SomeData

Как я могу передать его на сторону javascript? Как ..

  so.addVariable("xmlPath", "xml/<% SomeData %>.xml");

или все, что нужно для работы.

ОБНОВЛЕНИЕ: Помимо приведенного выше примера, есть ли способ создания JavaScript на стороне сервера?

Ответы [ 3 ]

3 голосов
/ 04 ноября 2010

Попробуйте что-то вроде:

function GetQueryString(param) 
{
 var url = window.location.search.substring(1);
    var params = url.split("&");
    for (i=0;i<params.length;i++) 
    {
        var p = params[i].split("=");
        if (p[0] == param) 
        {
            return p[1];
        }
    }   
}

И используйте это как:

so.addVariable("xmlPath", "xml/" + GetQueryString("XmlFile") + ".xml");
0 голосов
/ 04 ноября 2010

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;

}

0 голосов
/ 04 ноября 2010

window.location.href содержит строку запроса текущей страницы, это должно работать:

// Read a page's GET URL variables and return them as an associative array.
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;
}
...