前提是我要将数组作为参数传给另一函数,在函数里我要通过construct来判断参数是否为数组如果声明一个数组变量,调用变量的construct时,会返回
function Array() {
    [native code]
}但是通过弹出对话框传回数组再赋给变量(arrData)时,调用这个方法就会提示“无效的方法或属性调用”
但是我调用arrData.length时,能正确执行
如果arrData[0]为数组数据,我调用arrData[0].length也能正确执行
我的解决方法是通过循环将数据一一赋给新声明的一个数组,再将数组作为参数传给另一函数。请教高手,有没有别的办法,不用重新声明变量,再赋值?

解决方案 »

  1.   

    window.showModalDialog(URL,a)<SCRIPT LANGUAGE="JavaScript"> 
    <!-- 
    a = dialogArguments; 
    alert(a); 
    a = new Array(0);
    a[0] = "fourth"; 
    // --> 
    </SCRIPT> 这样就可以在弹出窗口里对调用窗口变量进行赋值
      

  2.   

    是啊,我也碰到了,暂时这样解决
    var arr = showModial.....var x = new Array()
    for(i=0;i<arr.length;i++)
    x[i]=arr[i]使用x来替代
      

  3.   

    呢可以这样看看<script>
    function btnOk(e)
    {
    var o = new Object();
    o.b="";
    o.a = new Array(1,2,3);
    window.returnValue = o;
    window.close();
    }
    <script>parent<script>
    function doPopup(e)
    {
    var rv = window.showModalDialog("popup.htm");
    alert(rv.a);
    }
      

  4.   

    net_lover(孟子E章)我就是通过以下方式传回数组或者字符串数据的
    var returnObject = new Object();
    var arrNnum = new Array();
    var arrNormal = new Array();
    //通过函数为arrNum,arrNormal赋值
    returnObject.arrNum = arrNum;
    returnObject.arrNormal = arrNormal;
    window.returnValue = o;
    window.close();因为在通过函数赋值的时候有可能不是数组是字符串,所以在父窗口需要对其是否是数组进行判断
    于是调用constructor时就出错了。
      

  5.   

    window.returnValue = o;
    应该 是
    window.returnValue = returnObject;
      

  6.   

    goody9807() 程序需要传数组的,而且数组里的数据信息还比较多,根据不同情况有可能取不到数据就传回单一的字符串。
      

  7.   

    var postFlag = window.showModalDialog(
    if(postFlag[0] == 'T'){btnOK.Attributes("onclick") = "var postFlag = new Array('T'); window.returnValue = postFlag;"
      

  8.   

    转一个字符串 然后才分割split一下 就可以了
      

  9.   

    因为楼主判断的情况只有两种,一是数级,一是字符串,如果实在没有别的更好的方法,那么可以这样来判断因为数组一定object,而字符串不是,所以可以写一个函数,如下:
    function isObject() 
    {
    if (typeof arguments[0] == "object") 
    {  
    return true;
    }
    return false;
    }在参数只有数组跟字符串两种类型的情况下,返回true则肯定是数组,如果返回false那就是字符串了