最近忙着做js,在js里头有用到鼠标的一些事件时,通常我都是把鼠标事件包含在一个js文件中调用
<script type="text/javascript" src="js/sb_cd.js"></script>
在鼠标事件中若包含如下鼠标的特效,就会导致事件触发:js/sb_cd.js
// javascript document
var sb_cd_a_colour='fff000';
var sb_cd_b_colour='00ff00';
var sb_cd_c_colour='ff00ff';
var sb_cd_size=120;
var sb_cd_ydummy=new array(),sb_cd_xdummy=new array(),sb_cd_xpos=0,sb_cd_ypos=0,sb_cd_thisstep=0;sb_cd_step=0.6;
if (document.layers){
window.captureevents(event.mousemove);
function sb_cd_nsmouse(evnt){
sb_cd_xpos = window.pageyoffset+evnt.pagex+6;
sb_cd_ypos = window.pageyoffset+evnt.pagey+16;
}
window.onmousemove = sb_cd_nsmouse;
}
else if (document.all)
{
function sb_cd_iemouse(){
sb_cd_xpos = document.body.scrollleft+event.x+6;
sb_cd_ypos = document.body.scrolltop+event.y+16;
}
document.onmousemove = sb_cd_iemouse;
}
function sb_cd_swirl(){
for (i = 0; i < 3; i++)
{
sb_cd_ydummy[i]=sb_cd_ypos+sb_cd_size*math.sin((1*math.sin((sb_cd_thisstep)/10))+i*2)*math.sin((sb_cd_thisstep)/4);
sb_cd_xdummy[i]=sb_cd_xpos+sb_cd_size*math.cos((1*math.sin((sb_cd_thisstep)/10))+i*2)*math.sin((sb_cd_thisstep)/4);
}
sb_cd_thisstep+=sb_cd_step;
settimeout('sb_cd_swirl()',10);
}
var sb_cd_amount=10;
if (document.layers){
for (i = 0; i < sb_cd_amount; i++)
{
document.write('<layer name=sb_cd_nsa'+i+' top=0 left=0 width='+i/2+' height='+i/2+' bgcolor='+sb_cd_a_colour+'></layer>');
document.write('<layer name=sb_cd_nsb'+i+' top=0 left=0 width='+i/2+' height='+i/2+' bgcolor='+sb_cd_b_colour+'></layer>');
document.write('<layer name=sb_cd_nsc'+i+' top=0 left=0 width='+i/2+' height='+i/2+' bgcolor='+sb_cd_c_colour+'></layer>');
}
}
else if (document.all){
document.write('<div id="sb_cd_odiv" style="position:absolute;top:0px;left:0px">'
+'<div id="sb_cd_idiv" style="position:relative">');
for (i = 0; i < sb_cd_amount; i++)
{
document.write('<div id=sb_cd_x style="position:absolute;top:0px;left:0px;width:'+i/2+';height:'+i/2+';background:'+sb_cd_a_colour+';font-size:'+i/2+'"></div>');
document.write('<div id=sb_cd_y style="position:absolute;top:0px;left:0px;width:'+i/2+';height:'+i/2+';background:'+sb_cd_b_colour+';font-size:'+i/2+'"></div>');
document.write('<div id=sb_cd_z style="position:absolute;top:0px;left:0px;width:'+i/2+';height:'+i/2+';background:'+sb_cd_c_colour+';font-size:'+i/2+'"></div>');
}
document.write('</div></div>');
}
function sb_cd_prepos(){
var sb_cd_ntscp=document.layers;
var sb_cd_msie=document.all;
if (document.layers){
for (i = 0; i < sb_cd_amount; i++)
{
if (i < sb_cd_amount-1)
{
sb_cd_ntscp['sb_cd_nsa'+i].top=sb_cd_ntscp['sb_cd_nsa'+(i+1)].top;sb_cd_ntscp['sb_cd_nsa'+i].left=sb_cd_ntscp['sb_cd_nsa'+(i+1)].left;
sb_cd_ntscp['sb_cd_nsb'+i].top=sb_cd_ntscp['sb_cd_nsb'+(i+1)].top;sb_cd_ntscp['sb_cd_nsb'+i].left=sb_cd_ntscp['sb_cd_nsb'+(i+1)].left;
sb_cd_ntscp['sb_cd_nsc'+i].top=sb_cd_ntscp['sb_cd_nsc'+(i+1)].top;sb_cd_ntscp['sb_cd_nsc'+i].left=sb_cd_ntscp['sb_cd_nsc'+(i+1)].left;
}
else
{
sb_cd_ntscp['sb_cd_nsa'+i].top=sb_cd_ydummy[0];sb_cd_ntscp['sb_cd_nsa'+i].left=sb_cd_xdummy[0];
sb_cd_ntscp['sb_cd_nsb'+i].top=sb_cd_ydummy[1];sb_cd_ntscp['sb_cd_nsb'+i].left=sb_cd_xdummy[1];
sb_cd_ntscp['sb_cd_nsc'+i].top=sb_cd_ydummy[2];sb_cd_ntscp['sb_cd_nsc'+i].left=sb_cd_xdummy[2];
}
}
}
else if (document.all){
for (i = 0; i < sb_cd_amount; i++)
{
if (i < sb_cd_amount-1)
{
sb_cd_msie.sb_cd_x[i].style.top=sb_cd_msie.sb_cd_x[i+1].style.top;sb_cd_msie.sb_cd_x[i].style.left=sb_cd_msie.sb_cd_x[i+1].style.left;
sb_cd_msie.sb_cd_y[i].style.top=sb_cd_msie.sb_cd_y[i+1].style.top;sb_cd_msie.sb_cd_y[i].style.left=sb_cd_msie.sb_cd_y[i+1].style.left;
sb_cd_msie.sb_cd_z[i].style.top=sb_cd_msie.sb_cd_z[i+1].style.top;sb_cd_msie.sb_cd_z[i].style.left=sb_cd_msie.sb_cd_z[i+1].style.left;
}
else
{
sb_cd_msie.sb_cd_x[i].style.top=sb_cd_ydummy[0];sb_cd_msie.sb_cd_x[i].style.left=sb_cd_xdummy[0];
sb_cd_msie.sb_cd_y[i].style.top=sb_cd_ydummy[1];sb_cd_msie.sb_cd_y[i].style.left=sb_cd_xdummy[1];
sb_cd_msie.sb_cd_z[i].style.top=sb_cd_ydummy[2];sb_cd_msie.sb_cd_z[i].style.left=sb_cd_xdummy[2];
}
}
}
settimeout("sb_cd_prepos()",10);
}
function sb_cd_start(){
sb_cd_swirl(),sb_cd_prepos()
}
window.onload=sb_cd_start;
其中页面的代码如下:
当打开dw时,通常会先有这样预先定义好的代码,先看看第一行
<!doctype html public "-//w3c//dtd html 4.01 transitional//en"
"http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<script type="text/javascript" src="js/sb_cd.js"></script>
</body>
</html>
问题找了很久,都不知道是什么地方的问题。后来才发现是dw生成的代码第一句
<!doctype html public "-//w3c//dtd html 4.01 transitional//en"
"http://www.w3.org/tr/html4/loose.dtd">
使得这个鼠标事件不运行。,原来这里声明了后面的鼠标事件必须遵循这个dtd文档 的规则。
而不事件中的一些定义没有遵循,所以这个鼠标事件即不触发,也不报错。
官方是这样定义 doctype html public 的
指定了 html 文档遵循的文档类型定义(dtd)。
你可使用此声明将 inte.net explorer 6 及以后版本切换到标准兼容模式下。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器