`
king_tt
  • 浏览: 2114317 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

由DOCTYPE造成的Javascript运行错误问题之解决方法

 
阅读更多

每个标准的网页最顶部都有

这段话,但是有时它会造成你的Javascript脚本不执行,怎么解决呢?当然删掉这句话是可以解决的,但那样肯定不是最好的解决方法。

DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。其中的DTD(例如上例中的xhtml1- transitional.dtd)叫文档类型定义,里面包含了文档的规则,浏览器就根据你定义的DTD来解释你页面的标识,并展现出来。要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。

下面这段代码是制作一个网页对联式浮动层的:

但是一旦执行它,你会发现这个浮动层并不会move,也就是说里面的Javascript并没有完成应有的作用。此时,我们的解决方法有两种:一种是删掉DOCTYPE这句。但是如果你的页面使用了css(尤其是960网格系统等css框架),就会发现此时你的页面布局全部都混乱了。第二种方法是将上段代码里的document.body .scrollTop 改写为document.documentElement .scrollTop ,浮动层又开始听话啦~

下面简要介绍一下DTD声明方式:

XHTML 1.0 提供了三种DTD声明可供选择:

  • 过渡的(Transitional):要求非常宽松的DTD,它允许你继续使用HTML4.01的标识(但是要符合xhtml的写法)。完整代码如下:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • 严格的(Strict):要求严格的DTD,你不能使用任何表现层的标识和属性,例如<br>。完整代码如下:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  • 框架的(Frameset):专门针对框架页面设计使用的DTD,如果你的页面中包含有框架,需要采用这种DTD。完整代码如下:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

理想情况应选用严格的DTD,但对于大多数新手程序员来说,过渡的DTD(XHTML 1.0 Transitional)是最佳选择。因为这种DTD允许使用表现层的标识、元素和属性,也比较容易通过W3C的代码校验。


最后支持一下曹操墓打假~不管真假,质疑才是对真相的负责

分享到:
评论

相关推荐

    JavaScript 错误处理与调试经验总结

    下面总结一下JS错误处理与调试的方法 方法1:用alert&#40;&#41; 和[removed]()方法监视变量值。 alert&#40;&#41;在弹出对话框显示变量值的同时,会停止代码的继续运行,直到用户单击“确定”按钮,而[removed]()则在...

    micro-template.js:一个 JavaScript 模板引擎,喜欢嵌入 js

    更好的错误消息:在运行时错误中显示行号 支持源映射:在 Chrome 上调试更容易,包括语法错误 测试良好:在 node.js 上测试 默认转义:默认情况下所有输出都被转义以确保安全 概要 在 HTML 上 &lt;!DOCTYPE html&gt; ...

    FCKeditor RedFishX配置版 1.1

    因为插入代码部分使用的不是本人的代码,因此在插入代码的时候有一点BUG,这一个版本已经解决了这个问题。 &lt;br&gt;除具有csdn.net博客中的功能外,还支持最新的Opera(9.22)浏览器,是一个很好的FCKeditor配置。 ...

    DWR.xml配置文件说明书(含源码)

    仅仅通过反射方法没有办法知道集合元素中的类型,所以上面的两个converter能将任何集合转换成相对javascript而言有意义的对象.然而没有办法将不同的集合类类型分别采用不同的转换方法.因为没有办法完全自动进行转换,...

    Yeharold#Web#09-01.浏览器渲染机制1

    前言接下来的几篇文章,讲一下二面的内容。二面的内容:渲染机制JS 运行机制页面性能错误监控本文接下来讲渲染机制。渲染机制包括的内容:什么是DOCTYPE及作用浏

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    象这样没有包含任何子元素的最后一级元素我们也称之为"页元素"。 4.Parser(解析软件) Parser是一种检查XML文档是否遵循DTD规范的工具软件。 XML的parser发展为两类:一种是"非确认类paeser",只检测文档是否遵守...

    replay:受React启发的跨平台JS游戏引擎

    Replay是受启发的跨平台JavaScript游戏引擎。 它的声明性API与典型的游戏引擎背道而驰。它虽小却功能强大,可让您完全控制游戏的运行方式。内置强大的测试库,Replay非常适合编写无错误的游戏。 一次构建您的游戏,...

    HTML5程序设计(第2版).[荷]Peter Lubbers(带详细书签).pdf

    1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 10 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 ...

    完整版《HTML5高级程序设计》2

    1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 Monkeys、...

    完整版《HTML5高级程序设计》4

    1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 Monkeys、...

    完整版《HTML5高级程序设计》5

    1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 Monkeys、...

    完整版《HTML5高级程序设计》3

    1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 Monkeys、...

    HTML5高级程序设计.part5

    1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 ...

    HTML5高级程序设计.part4

    1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 ...

    HTML5高级程序设计.part1

    1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 ...

    HTML5高级程序设计.part2

    1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 ...

    HTML5高级程序设计.part3

    1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用Selectors API简化选取操作 15 1.6.5 JavaScript日志和调试 18 1.6.6 window.JSON 19 1.6.7 DOM Level 3 19 1.6.8 ...

    HTML5高级程序设计

    1.6.1 新的doctype和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 9 1.6.4 使用selectors api简化选取操作 15 1.6.5 javascript日志和调试 18 1.6.6 window.json 19 1.6.7 dom level 3 19 1.6.8 ...

    网上图书销售数据库+ASP

    '-------------------------------------------------------------------- ' Microsoft ADO ' ...' ' ' ' ADO constants include file for VBScript ' '------------------------------------------------------------...

Global site tag (gtag.js) - Google Analytics