1

我在将参数从一页发送到另一页时遇到了一个神秘的问题。

在其中一个 ExtJs 方法中,我通过 POST 将参数发送到另一个页面:

autoLoad : {  
url : url_servlet+'form.jsp',  
params: str,
scripts: true  
}

但我不知道如何在 JavaScript 中获取此参数。好吧,我说,并在 url 中发送参数:

 url : url_servlet+'form.jsp?ss=333'

在另一个页面中:

            function param(Name){
            var Params = location.search.substring(1).split("&");
            var variable = "";
            for (var i = 0; i < Params.length; i++){
                if(Params[i].split("=")[0] == Name){
                    if (Params[i].split("=").length > 1)
                        variable = Params[i].split("=")[1];
                return variable;
                }
            }
            return "";
        } 

        var s =param('ss');
        alert(s);

并看到空警报。

在萤火虫我尝试:

window.location.search

并得到" ".

怎么了?我读了几个例子,每个人都看到这样的代码。

4

3 回答 3

1

这里可能发生的是 ExtJS 将整个页面从远程位置加载到当前页面中。

发生这种情况时,由于加载而运行的代码将在当前页面中执行(可能根本没有ss=xyz参数)。

但是,您form.jsp应该有权访问查询字符串,并且可以将其注入到它返回给 ExtJS 的页面中。

另一种选择是在页面加载后以某种方式从 JavaScript 传递该数据,但我对 ExtJS 的了解还不够,无法告诉您如何做到这一点。

于 2012-11-23T06:40:32.347 回答
0

您无法从 javascript 获取 POST 参数。POST 参数发送到服务器,javascript 发送到客户端。

如果它是 GET,那么您可以使用parseUri 库

var value = uri.queryKey['param'];
于 2012-11-23T06:21:25.260 回答
0

你能试试下面的功能吗?

 function param(Name){
            var Params = location.search.substring(1).split("&");
            var variable = "";
            for (var i = 0; i < Params.length; i++){
                if(Params[i].split("=")[0] == Name){
                    variable = Params[i].split("=")[1];
                    return variable;
                }
            }
            if(variable=="") return variable;

        } 
    var s =param('ss');
    alert(s);
于 2012-11-23T06:23:20.147 回答