在url中的querystring中传递字母数字值在flash中不起作用

时间:2012-02-09 17:19:54

标签: javascript asp.net html flash actionscript

我有一个Flash应用程序,我想通过defaul.aspx页面的javascript向它发送参数。

我有一个名为Id的参数,它可以接受字母数字值。

如果我只输入Id的数字,则url中的查询字符串工作正常,并将我带到依赖于该ID的特定页面,但是如果我输入数字和字符组合(如001A),则它不起作用。

这是我使用的代码

<script type="text/javascript">
    function getQueryVariable(variable) 
    {
        var query = window.location.search.substring(1);  
        var vars = query.split("&");  
        for (var i=0; i<vars.length; i++) 
        {    
            var pair = vars[i].split("="); 
            if (pair[0] == variable)
                return (pair[1]);
        }
    }
    </script>  

然后我将flash应用程序的第一页分配给它。

flashvars.StartPage = getQueryVariable("Id"); 

然后将flashvars传递给swfobject.embedSWF

我也不想在flash端

中修改mxml文件中的任何内容

如果有人能帮我解决问题,我感激不尽

感谢

1 个答案:

答案 0 :(得分:0)

不,您不需要使用JavaScript来处理来自查询字符串的值,然后再发送到闪存。

只需使用ExternalInterface.call函数从URL中获取变量(在本例中为GET)。

以下是代码的工作原理。在MXML中添加此代码。

var pageURL : String = ExternalInterface.call("window.location.href.toString");
var paramPairs : Array = pageURL.split("?")[1].split("&");
                for each (var pair : String in paramPairs)
                {
                    var pairHolderx:Array = pair.split("=");
                    arrVals[counter]=pairHolderx[1];
                    counter++;
                }

因此,如果您的网址与http://www.stackoverflow.com/page.aspx?id=230A78&id2=8934相同 arrVals[0]包含230A78,arrVals[1]包含8934