请看这段代码:
<html>
<head>
</head>
<body onload="dir()">
</body><script>

var mywin=window.open("","_blank","width=100,height=200,titlebar=0,toolbar=0,status=0,resizable=0,menubar=0,location=0")
var m=mywin.screenLeft;
var u=self.screenLeft;
var xin=window.document.body.clientWidth;
var x=u;
var y=100;
var bir

function  dir()
{
if (m<u||m>(xin+u-100))
             {bir=-1}
         else {bir=1}
mywin.moveTo(x,y)
x=x+1*bir

setTimeout("dir()",10)
}
document.write(m +"<br />")
document.write(u +"<br />")
document.write(xin)
</script>
</html>
我本想让主窗口打开一个子窗口,并且子窗口在主窗口内移动,只做了水平位置的移动,可是现在试验结果却是子窗口只在规定的位置一直向右移动直到碰到显示器的右边,只能向右不能向左,请各位老师帮忙说一下问题出在哪儿,谢谢。

解决方案 »

  1.   

    if (m<u||m>(xin+u-100))
    {bir=-1}
    else {bir=1}
    mywin.moveTo(x,y)
    x=x+1*bir判断条件里,必须加上BIR原来的值是多少.否则,在当中一个区间,它只能是一个值.事实上,它既可以是向左也可以是向右.好好想想.
      

  2.   


    <html>
    <head>
    </head>
    <body onload="dir()">
    <script>
    var mywin = window.open("","_blank","width=100,height=200,titlebar=0,toolbar=0,status=0,resizable=0,menubar=0,location=0")
    var m = mywin.screenLeft;
    var u = self.screenLeft;
    var xin = window.document.body.clientWidth;
    var x = u;
    var y = 500;
    var bir = 1;function dir() {
    var t = xin + u-100;
    if (bir == 1) {
    if (x == t - 1 ) {
    bir = -1;

    } else {
    if (x == u ) {
    bir = 1;

    }
    mywin.moveTo(x, y);
    x = x + 1 * bir;
    setTimeout("dir()", 10);
     
    document.body.innerHTML = "u:" + u + ", xin:" + xin + ", x:" + x + ", bir:" + bir + ", t:" + t + ",m:" + m;
    }
    /*document.write(m +"<br />");
    document.write(u +"<br />");
    document.writeln(xin);
    document.writeln(x);
    document.writeln(dir);
    document.writeln(t); */
    </script>
    </body>
    </html>
      

  3.   

    hoojo.....IE6下面可以,火狐下面可以不呢?我放火狐下,它不移动!!!
      

  4.   

    ff下用screenX,screenY 。
    var m = mywin.screenLeft || mywin.screenX;
    var u = self.screenLeft || self.screenY;
      

  5.   

    var m = mywin.screenLeft || mywin.screenX;
    var u = self.screenLeft || self.screenX;