代码之家  ›  专栏  ›  技术社区  ›  OrElse

如何将值从querystring传递到javascript?

  •  3
  • OrElse  · 技术社区  · 16 年前

    现在我学会了如何 pass values to an SWF object via flashvars

    我什么意思?在下面的示例中,我硬编码了要加载到SWF对象中的xml文件。

    <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

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

    或是任何能让它发挥作用的东西。

    更新:

    3 回复  |  直到 9 年前
        1
  •  3
  •   Kamran Khan    16 年前

    尝试以下方法:

    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");
    
        2
  •  0
  •   Luca Matteis    16 年前

    window.location.href 包含当前页的querystring,这应该可以工作:

    // 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;
    }
    
        3
  •  0
  •   user496879    16 年前

    函数getUrlVars() { var vars=[],散列; var hashes=window.location.ref.slice(window.location.ref.indexOf('?')+1)拆分(“&”);

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