你好,写在div里面的js代码如何提取到外部文件再引入可以显示正常的效果?

如:下面的js代码写在div里面是可以正常显示的,但是复制到外面再引进就没有效果,请问如何修改可以正常使用?
<script>
var qoMarquee = document.getElementById("qy"); //滚动对象
var tab1 = document.getElementById("tab1");
var tab2 = document.getElementById("tab2");
var qiLineHeight = 220;//单行高度,像素IE
var qiLineCount = 0; //实际行数
var qiScrollAmount = 2; //每次滚动高度,像素(速度)
var speed1=3000;//每次停留时间
var speed2=1;//滚动速度
var num=qoMarquee.getElementsByTagName('img').length;//总数
tab2.innerHTML=tab1.innerHTML;
var alink=document.getElementById('btm').getElementsByTagName('a');
for(var i=0;i<alink.length;i++){
alink[i].onfocus=function(){this.blur();}
}
function run() {
if(qoMarquee.scrollTop==num*qiLineHeight){qoMarquee.scrollTop=0;window.setTimeout( "run()", speed2 );}//重置并接着滚动
else{
qoMarquee.scrollTop +=qiScrollAmount;
if ( qoMarquee.scrollTop % qiLineHeight == 0 ) {window.setTimeout( "run()", speed1 );}//如果满格等待N秒
else {window.setTimeout( "run()", speed2 );}//正常滚动
}
}
function up(){
qiScrollAmount = 0;
var amount=1;
if(qoMarquee.scrollTop==num*qiLineHeight) qoMarquee.scrollTop=0;
qoMarquee.scrollTop +=amount;
if ( qoMarquee.scrollTop % qiLineHeight == 0 ) {amount=0;window.setTimeout( "qiScrollAmount = 2", speed1 );}
else window.setTimeout( up(), 1 );
}
function dw(){
qiScrollAmount = 0;
var amount=1;
if(qoMarquee.scrollTop==0) qoMarquee.scrollTop=num*qiLineHeight;
qoMarquee.scrollTop -=amount;
if ( qoMarquee.scrollTop % qiLineHeight == 0 ) {amount=0;window.setTimeout( "qiScrollAmount = 2", speed1 );}
else window.setTimeout( dw(), 1 );
}
window.setTimeout( "run()", speed1 );
</script>

把js代码复制,新建一个txt文件(Dreamwaver里面可以直接新建js文件),粘贴代码,保存,名字自己命,记得内容里面把<script></script>删掉,也就是你现在这段代码的第一行和最后一行。比如保存为1.txt(DW里面后缀名直接就是*.js)。修改名称为1.js,保存的位置跟你要引用的html放在同一个文件夹就好。然后在html的<head></head>之间加入代码:
<script type="text/javascript" src="1.js"></script>追问

就因为这样不行所以才问的嘛,不是不会调用而是没有效,教你吧,把引入文件放到html后台就可以正常显示了!

追答

不懂你的意思,我觉得我做了成百上千的网页这样都没出过错。

追问

我也是啊,理应是那样,但是js写法不同吧,所以才这样才有效果

追答

可能是你网站有比较特殊的地方吧。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-27
放到页面最后的</body></html>之间吧
要等页面的DIV结构渲染完毕之后再执行 不然执行的时候div还没加载上肯定没效果的
还有一点就是代码中有没有调用别的js里面的方法 如果有的话要在这个js前面引入写有方法的那个js追问

代码里面是有调用过js里面的方法,要不作用就不太大了,就给个onclick事件就可以了,现在好了,谢谢了!

第2个回答  2013-02-27
把外部文件的引入放到html的最后追问

就放到的后台还是的后面,意思是加载完页面所有内容再加载这个js文件了

追答

对的
放到body结束前好了

xxx

本回答被提问者采纳
相似回答