【问题标题】:passing alphanumeric value in querystring in url does not work in flash在 url 中的查询字符串中传递字母数字值在 flash 中不起作用
【发布时间】:2012-02-09 17:19:54
【问题描述】:

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

我有一个名为 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 文件中的任何内容

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

谢谢

【问题讨论】:

    标签: javascript asp.net html flash actionscript


    【解决方案1】:

    不,您不需要使用 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++;
                    }
    

    因此,如果您的 URL 类似于 http://www.stackoverflow.com/page.aspx?id=230A78&id2=8934 arrVals[0] 包含 230A78,arrVals[1] 包含 8934

    【讨论】:

    • 感谢您的帮助,正如我之前所说,我不想更改 MXML 文件,我想通过 html 或 defaul.aspx 文件中的 javascript 来完成
    猜你喜欢
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    相关资源
    最近更新 更多