某个网页因为需要根据不同的情况,可能会是一个单独的网页,也可能会是在index.jsp的iframe里面的网页。根据这两种不同的情况,需要使用不同的css和不同的js方法。
之前在CSDN请教之后,根据网友的指教,用window.self==window.top这个方法,设好了css。
但js方法就总是搞不好。
如果直接用<body onload="a()" onclick="b()" onmouseover="c()">,那些JS方法都可以运行,但在<script></script>标签里面,就总是报:“尚未实现”这个异常。代码如下:<html><head>
<script type="text/javascript" language="javascript" src="abc123.js"></script>
</head>
<body onload="start()" id="body1"><div id="sTo"></div>
<script>
var mt=document.title;
var l=mt.length;
function moveTitle(){
document.title=mt.substring(1,l)+mt.substring(0,1);
mt=document.title;
setTimeout("moveTitle();", 1000);
}function start(){
if (window.self==window.top){
body1.className="bodyIndex";
moveTitle();
}else{
body1.className="body";
body1.onload=a(sTo); //1
body1.onclick=b(sTo); //2
body1.onkeydown=c(sTo); //3
body1.onmouseover=c(sTo); //4
}
}
</script>
</body>
</html>
a、b、c这三个方法在abc123.js内。现在运行到第1、2、3、4处,都会报“尚未实现”这个异常,请问怎么解决呢?谢谢。

解决方案 »

  1.   

    document.body.onload=a
    或者
    document.body.onload=function(){a(sTo);   }
      

  2.   

    后面的script代码应该放到head中。否则浏览器按照顺序解析文件,先解析到body事件,然后寻找start函数,这是还没解析到后面的script脚本,当然找不到你的函数了
      

  3.   

    救命,还是不行,根据3楼的建议,我已经放到<head>里面了,还是报“尚未实现”异常。
    我甚至用setInterval延迟了一下时间了,还是报异常,到底应该怎么搞呢?
      

  4.   

    因为abc123.js里面有大量的JS方法,当window.self==window.top的时候,这些方法是全部用不到的。所以我想把<script type="text/javascript" language="javascript" src="abc123.js"></script>这行代码放到判断里面。即:<html><head>
    <script>
    var mt=document.title;
    var l=mt.length;
    function moveTitle(){
        document.title=mt.substring(1,l)+mt.substring(0,1);
        mt=document.title;
        setTimeout("moveTitle();", 1000);
    }function start(){
        if (window.self==window.top){
            body1.className="bodyIndex";
            moveTitle();
        }else{
            document.write('<script language="javascript" src="/rcx/validate.js"><\/script>');
            body1.className="body";
            body1.onload=a(sTo);        //1
            body1.onclick=b(sTo);        //2
            body1.onkeydown=c(sTo);        //3
            body1.onmouseover=c(sTo);        //4
        }
    }
    </script>
    </head>
    <body onload="start()" id="body1"><div id="sTo"></div>
    </body>
    </html>
    但又报异常:没有对象。请问我应该怎样改呢?
      

  5.   

    body1.onload=a(sTo);  没有这么写,怎么还写呢?
      

  6.   

    谢谢5楼,//1改为:a(sTo)了,其他几行呢?
      

  7.   

    ONLOAD写在外面直接用方法名
    onload = fun1;
    function fun1(){
      ......
    }
      

  8.   

    按照1楼和8楼的写法,原来onclick和onmouseover等几个方法都搞掂了,原来事件的设置要这样写法,今天才正式掌握了。
    谢谢各位网友、高手的指教。