是什么对象?说清楚才好回答啊?
是个DHTML的元素,还是JS本身的对象?先给个可能有用的东西:
a=window.open(URL)
其后就可以使用:
a.closed
属性来判断看看一个窗口是否已经关闭。如果已经关闭就不要再试图访问其中的对象了,以免出错。

解决方案 »

  1.   

    当前窗口里面的元素用 element.cloneNode(true);其他窗口的元素嘛......创建一个一样的元素:elm=document.createElement(win.elementID.outerHTML)
    插入到当前窗口:obj.insertBefore(elm)或者obj.appendChild(elmJ)
    obj为窗口中的一个容器元素,如td或span或div。
      

  2.   

    自定义的对象自己写个clone函数吧,做出符合你需要的深度复制就可以了,这个没有现成的可以用...
      

  3.   

    我来写一个吧:
    <html>
    <head>
    <body>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function objClone(obj,creator)
    //obj为要克隆的对象,creator为该对象的构造方法
    {
    result = new creator();
    for (var i in obj)
    result[i] = obj[i]
    return result
    }function OBJ() //一个类的构造方法
    {
    this.p1 = 0; //数值型的成员
    this.p2= "";//串型的成员
    this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
    }var obj1 = new OBJ(); //构造一个新类
    obj1.p1 = 99;
    obj1.p2 = "emu(ston)"
    obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)var obj2 = objClone(obj1,OBJ);//克隆
    //看看成果怎么样
    alert(obj2.p1)
    alert(obj2.p2)
    alert(obj2.p3)//-->
    </SCRIPT>
    </body>
    </html>这个例子要知道构造方法的,为的是保证克隆结果于原来的对象类型相同。如果对类型没有特殊要求,只要能访问成员就行,也可不用构造方法。
      

  4.   

    <html>
    <head>
    <body>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function objClone(obj)
    //obj为要克隆的对象,不需要构造方法
    {
    result = new Array();
    for (var i in obj)
    result[i] = obj[i]
    return result
    }function OBJ() //一个类的构造方法
    {
    this.p1 = 0; //数值型的成员
    this.p2= "";//串型的成员
    this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
    }var obj1 = new OBJ(); //构造一个新类
    obj1.p1 = 99;
    obj1.p2 = "emu(ston)"
    obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)var obj2 = objClone(obj1);//克隆
    //看看成果怎么样
    alert(obj2.p1)
    alert(obj2.p2)
    alert(obj2.p3)//-->
    </SCRIPT>
    </body>
    </html>这个,只要随便给个对象就可以克隆了。
      

  5.   

    带了方法的,方法也会被克隆。
    <html>
    <head>
    <body>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function objClone(obj)
    //obj为要克隆的对象,不需要构造方法
    {
    result = new Array();
    for (var i in obj)
    result[i] = obj[i]
    return result
    }function OBJ() //一个类的构造方法
    {
    this.p1 = 0; //数值型的成员
    this.p2= "";//串型的成员
    this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
    this.act1 = test;
    }
    function test()
    {
    for (var i in this)
    alert(i+"="+this[i])
    }
    var obj1 = new OBJ(); //构造一个新类
    obj1.p1 = 99;
    obj1.p2 = "emu(ston)"
    obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)
    var obj2 = objClone(obj1);//克隆//看看成果怎么样
    obj2.act1();
    //-->
    </SCRIPT>
    </body>
    </html>不过如果有原型方法的话还是用第一种方法来克隆吧。<html>
    <head>
    <body>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function objClone(obj,creator)
    //obj为要克隆的对象,creator为该对象的构造方法
    {
    result = new creator();
    for (var i in obj)
    result[i] = obj[i]
    return result
    }function OBJ() //一个类的构造方法
    {
    this.p1 = 0; //数值型的成员
    this.p2= "";//串型的成员
    this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
    }
    OBJ.prototype.act =alert; //一个原型方法var obj1 = new OBJ(); //构造一个新类
    obj1.p1 = 99;
    obj1.p2 = "emu(ston)"
    obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)var obj2 = objClone(obj1,OBJ);//克隆
    //看看成果怎么样
    alert(obj2.p1)
    alert(obj2.p2)
    alert(obj2.p3)
    obj2.act()//-->
    </SCRIPT>
    </body>
    </html>
      

  6.   

    试试看?<html>
    <head>
    <body>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function objClone(obj)
    //obj为要克隆的对象,不需要构造方法
    {
    result = new Object();
    for (var i in obj)
    result[i] = obj[i] return result
    }function OBJ() //一个类的构造方法
    {
    this.p1 = 0; //数值型的成员
    this.p2= "";//串型的成员
    this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
    }var obj1 = new OBJ(); //构造一个新类
    obj1.p1 = 99;
    obj1.p2 = "emu(ston)"
    obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)var obj2 = objClone(obj1);//克隆
    obj1.p1=100;
    obj1.p3[1]=100;
    //看看成果怎么样
    alert(obj2.p1)
    alert(obj2.p2)
    alert(obj2.p3)//-->
    </SCRIPT>
    </body>
    </html>
      

  7.   

    试试看?(检验一下结果)<html>
    <head>
    <body>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function objClone(obj)
    //obj为要克隆的对象,不需要构造方法
    {
    result = new Object();
    for (var i in obj)
    result[i] = obj[i] return result
    }function OBJ() //一个类的构造方法
    {
    this.p1 = 0; //数值型的成员
    this.p2= "";//串型的成员
    this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
    }var obj1 = new OBJ(); //构造一个新类
    obj1.p1 = 99;
    obj1.p2 = "emu(ston)"
    obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)var obj2 = objClone(obj1);//克隆
    obj1.p1=100;
    obj1.p3[1]=100;
    //看看成果怎么样
    alert(obj2.p1)
    alert(obj2.p2)
    alert(obj2.p3)//-->
    </SCRIPT>
    </body>
    </html>
      

  8.   

    嗯。对OBJECT缺乏了解,不敢用的。说实在的,OBJECT和Array除了length之外,有其他的差别吗?
      

  9.   

    呵呵,原来克隆的还是不完全的,看看:
    alert("obj2的构造方法:"+obj2.constructor)
    alert("obj1的构造方法:"+obj1.constructor)更正如下:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title></title>
    </head>
    <body><html>
    <head>
    <body>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function objClone(obj)
    //obj为要克隆的对象,不需要构造方法
    {
    result = new Object();
    result.constructor = obj.constructor
    for (var i in obj)
    result[i] = obj[i]
    return result
    }function OBJ() //一个类的构造方法
    {
    this.p1 = 0; //数值型的成员
    this.p2= "";//串型的成员
    this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
    }
    OBJ.prototype.test=alert ;//一个原型方法var obj1 = new OBJ(); //构造一个新类
    obj1.p1 = 99;
    obj1.p2 = "emu(ston)"
    obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)var obj2 = objClone(obj1);//克隆
    obj1.p1=100;
    obj1.p3[1]=100;
    //看看成果怎么样
    alert(obj2.p1)
    alert(obj2.p2)
    alert(obj2.p3)
    obj2.test()
    alert("obj2的构造方法:"+obj2.constructor)
    alert("obj1的构造方法:"+obj1.constructor)
    //-->
    </SCRIPT>
    </body>
    </html>
    </body>
    </html>不知还有什么特性被遗漏的没有。
      

  10.   

    Array 支持的方法:(有很多是JScript5.5的)concat 方法 | join 方法 | pop 方法 | push 方法 | reverse 方法 | shift 方法 | slice 方法 | sort 方法 | splice 方法 | toString 方法 | unshift 方法 | valueOf 方法
      

  11.   

    看看还缺什么不?
    <html>
    <body>
    <input type="button" value="test" onclick="alert('test')" name="emu" id="obj1">
    <BR>
    <SCRIPT LANGUAGE="JavaScript">
    <!--function objClone(obj)
    //增加了对网页元素克隆的判断
    //增加了对构造方法的克隆
    {
    if (obj.cloneNode != null)
    return obj.cloneNode(true);
    result = new Object();
    result.constructor = obj.constructor
    for (var i in obj)
    result[i] = obj[i]
    return result
    }var obj2 = objClone(obj1);//克隆
    document.body.insertBefore(obj2)
    //-->
    </SCRIPT>
    </body>
    </html>
      

  12.   

    是啊是啊,我就经常利用Array的sort方法来排序,又快又好。看来还是增强了不少的。
      

  13.   


    for in 的方法只对 JScript 的 Object Array Function的实例有效。
    DHTML Element 要用 cloneNodedocument.body.insertBefore
    (
         obj1.cloneNode(true);//true代表子元素
    )
      

  14.   

    是啊是啊,我就经常利用Array的sort方法来排序,又快又好。看来还是增强了不少的。
      

  15.   

    恩。。教你一招:function Array.prototype.left(length)
    {
    return this.slice(0,length);
    }
    function Array.prototype.mid(start,length)
    {
    return this.slice(start,start+length);
    }
    function Array.prototype.right(length)
    {
    if(length>=this.length)return this.concat();
    return this.slice(this.length-length,this.length);
    }var arr=[0,1,2,3,4,5];
    alert(arr.left(3))
    alert(arr.mid(2,2))
    alert(arr.right(3))
      

  16.   

    function Array.prototype.item(index)
    {
    return this[index];
    }//JScript5.5
    function Array.prototype.removeItem(index)
    {
    this.splice(index,1);
    }
    //5.5
    function Array.prototype.removeLeft(count)
    {
    this.splice(0,count);
    }
    //5.5
    function Array.prototype.removeRight(count)
    {
    var start=this.length-count;
    var length=count;
    if(start<0)
    {
    start=0;
    length=this.length;
    }
    this.splice(start,length)
    }var a=[0,1,2,3,4,5];
    a.removeItem(3)
    alert(a)
      

  17.   

    function Array.prototype.item(index)
    {
    return this[index];
    }//JScript5.5
    function Array.prototype.removeItem(index)
    {
    this.splice(index,1);
    }
    //5.5
    function Array.prototype.removeLeft(count)
    {
    this.splice(0,count);
    }
    //5.5
    function Array.prototype.removeRight(count)
    {
    var start=this.length-count;
    var length=count;
    if(start<0)
    {
    start=0;
    length=this.length;
    }
    this.splice(start,length)
    }var a=[0,1,2,3,4,5];
    a.removeItem(3)
    alert(a)
      

  18.   

    谢谢了,emu是热心人, sunbeamy(阳光灿烂的深夜)一语命中,
    其实我也就是想知道js有没有现成的方法