分享
 
 
 

网页的DOCTYPE HTML public 会导致页面的部分事件不触发

王朝html/css/js·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

最近忙着做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 的

!DOCTYPE

指定了 HTML 文档遵循的文档类型定义(DTD)。

Microsoft® Internet Explorer 6 的新增内容

你可使用此声明将 Internet Explorer 6 及以后版本切换到标准兼容模式下。

语法

HTML

顶级元素 可用性 "注册//组织//类型 标签//定义 语言""URL"

可能值

顶级元素

指定 DTD 中声明的顶级元素类型。这与声明的 SGML 文档类型相对应。

HTML

默认。HTML。

可用性

指定正式公开标识符(FPI)是可公开访问的对象还是系统资源。

PUBLIC

默认。可公开访问的对象。

SYSTEM

系统资源,如本地文件或 URL。

注册

指定组织是否由国际标准化组织(ISO)注册。

+

默认。组织名称已注册。

-

组织名称未注册。Internet 工程任务组(IETF)和万维网协会(W3C)并非注册的 ISO 组织。

组织

指定表明负责由 !DOCTYPE 声明引用的 DTD 的创建和维护的团体或组织的名称,即 OwnderID。

IETF

IETF。

W3C

W3C。

类型

指定公开文本类,即所引用的对象类型。

DTD

默认。DTD。

标签

指定公开文本描述,即对所引用的公开文本的唯一描述性名称。后面可附带版本号。

HTML

默认。HTML。

定义

指定文档类型定义。

Frameset

框架集文档。

Strict

排除所有 W3C 专家希望逐步淘汰的代表性属性和元素,因为样式表已经很完善了。

Transitional

包含除 frameSet 元素的全部内容。

语言

指定公开文本语言,即用于创建所引用对象的自然语言编码系统。该语言定义已编写为 ISO 639

语言代码(大写两个字母)。

EN

默认。英语。

URL

指定所引用对象的位置。

注释

此声明必须出现在文档的起始处,出现在 html 标签之前。

!DOCTYPE 元素不需要关闭标签。

此元素在 Microsoft® Internet Explorer 3.0 的 HTML 中可用。

你可使用此声明在 Internet Explorer 6 及以后版本中切换为严格的标准兼容模式。若想打开此开关,请在你的文档顶部包含 !DOCTYPE 声明,在声明中指定合法的标签,在某些情况下,还需要指定定义和/或 URL。下面的表格列出了标准兼容模式的开关情况。

DOCTYPE

出现 URL

未出现 URL

未出现 DOCTYPE

HTML (无版本)

HTML 2.0

HTML 3.0

HTML 4.0

HTML 4.0 Frameset

HTML 4.0 Transitional

HTML 4.0 Strict

XHTML

XML

无法识别的 DOCTYPE

注意 在标准兼容模式下,不能保证与其它版本的 Internet Explorer 保持兼容。当打开标准兼容模式时,文档的渲染行为也许与将来版本的 Internet Explorer 不同。若内容本来就是固定的(如刻录在 CD 上),则不应该使用此模式。

示例

下面的例子演示了如何使用 !DOCTYPE 声明指定文档遵从的 DTD,并将 Internet Explorer 6 及更高版本切换到标准兼容模式。

下面例子中的声明都指定了遵从 HTML 4.0 DTD。第二种声明指定了“Strict”。第一种声明没有指定。这两种声明都将会把 Internet Explorer 6 及以后版本切换到标准兼容模式。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">

下面例子中的声明都指定了遵从“Transitional”HTML 4.0 DTD。第二种声明指定了 DTD 的 URL。第一种声明没有指定。第二种声明将会把 Internet Explorer 6 及以后版本切换到标准兼容模式。第一种声明不会。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

标准信息

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有