`
piperzero
  • 浏览: 3541348 次
  • 性别: 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 - javascript tutorial

    - 客户端JavaScript是在用户的浏览器上运行的代码,无需服务器端处理即可执行。 - **JavaScript的优势** - **互动性**:可以立即响应用户的输入。 - **简易性**:语法简单易学,与HTML紧密集成。 - **广泛支持*...

    html教案、javascript

    6. 错误处理:学习如何使用`try...catch`处理运行时错误,保证程序的健壮性。 7. ES6新特性:包括箭头函数、模板字符串、解构赋值、类和模块等,这些都是现代JavaScript开发的基础。 通过Dreamweaver的使用,学生...

    JavaScript程序设计课件:第一章 JavaScript简介.ppt

    JavaScript 则主要运行在浏览器环境中,两者虽然名字相似,但设计哲学和用途不同。然而,它们可以通过某些方式(如 Applets)进行结合,以实现互补功能。 总的来说,JavaScript 是网页开发中不可或缺的一部分,它为...

    jquery appen table 问题 ie8下解决方法

    本文将深入探讨“jquery append table问题在IE8下的解决方法”,结合给出的标签“源码”和“工具”,我们来详细讨论这个问题。 在jQuery中,`append()`函数是一个非常常用的方法,它允许我们在DOM(Document Object...

    javascript调用exe文件,弹出系统软键盘

    在IT领域,JavaScript是一种广泛使用的前端编程语言,主要用于构建网页交互和动态效果。然而,JavaScript并不直接支持调用操作系统级别的功能,比如执行本地的.exe文件。但通过一些技术手段,我们可以实现JavaScript...

    javascript和jquery笔记

    JavaScript主要在浏览器环境中运行,由于不同的浏览器可能有不同的实现,这导致了JavaScript在跨平台时需要注意兼容性问题。 在JavaScript中,变量的声明并不需要预先指定类型,而是采用弱数据类型。这意味着你可以...

    JavaScript中Dom操作实例详解.docx

    DOM 技巧总结》、《JavaScript 页面元素操作技巧总结》、《JavaScript 大事相关操作与技巧大全》、《JavaScript 查找算法技巧总结》、《...JavaScript 遍历算法与技巧总结》及《JavaScript 错误与调试技巧总结》...

    解决easyui不加载js问题.docx

    在开发Web应用时,我们...通过排查上述问题,大多数JavaScript加载和执行的问题都可以得到解决。在实际开发中,保持良好的编程习惯,如遵循HTML结构、合理组织脚本、使用调试工具等,都将有助于避免和解决此类问题。

    javascript 教程

    ### JavaScript 教程知识点概述 #### 一、脚本语言概览 - **脚本语言定义**:脚本语言是一种编程语言,与编译型语言不同,它的源代码无需预先编译,在执行过程中进行语法解析。这使得脚本语言能够跨平台运行,并且...

    javascript 基础教程

    JavaScript最初由Netscape公司发明,目的是为了增强Web浏览器的功能,使网页能够与用户进行更丰富的交互。随着时间的推移,JavaScript经历了多次演进,尽管在不同浏览器上的实现可能存在差异,但它已成为Web开发不可...

    Javascript基础教程

    - **运行方式:** JavaScript直接嵌入到HTML文档中,由浏览器解释执行。 - **编译与执行:** JavaScript在浏览器读取HTML文件时动态编译执行,因此可以直接查看源代码。 - **功能局限:** 相对于Java Applet,...

    javascript代码应当放在html代码哪个位置比较好_.docx

    选择正确的JavaScript代码放置位置对于确保脚本正常运行和提高网页性能至关重要。根据项目的需求和个人偏好,可以选择将JavaScript代码放在`&lt;head&gt;`或`&lt;body&gt;`标签内,也可以使用外部文件进行管理。无论采取哪种策略...

    如何用Qunit测试你的javascript代码文.pdf

    QUnit 是一个由 jQuery 团队开发的JavaScript单元测试框架,专为JavaScript代码的调试和测试设计。作为jQuery的官方测试工具,QUnit不仅适用于测试jQuery库本身,还能广泛应用于任何常规JavaScript代码,甚至能够在...

    asp.net中倒计时自动跳转页面的实现方法(使用javascript).docx

    ### ASP.NET中使用JavaScript实现倒计时自动跳转页面的方法 #### 一、背景与应用场景 在Web开发中,有时我们需要实现用户操作后的倒计时自动跳转功能,例如密码修改成功后提示用户并自动跳转到首页。这种场景不仅...

    JavaScript语言教程及案例.docx

    - 特别注意,在进行除法运算时,如果分母为零,则输出错误信息,以避免运行时错误。 以上就是关于JavaScript的基础知识点和一个简单的案例介绍。这些基础知识对于初学者来说非常重要,它们构成了后续学习和应用...

    JavaScript执行顺序

    理解JavaScript代码是如何按照顺序被执行的是开发高质量Web应用的基础之一。 **1.1 按HTML文档流顺序执行JavaScript代码** JavaScript代码通常被嵌入在HTML文档中,这些脚本可以位于`&lt;head&gt;`部分或者`&lt;body&gt;`部分...

    ocradjs通过Emscripten在Javascript中实现OCR

    Emscripten是一个LLVM到JavaScript的编译器,它能够将C和C++代码转换为可以在Web浏览器中运行的JavaScript。Emscripten使得开发者能够利用现有的C/C++库和代码来构建高性能的Web应用,无需重新编写为JavaScript。 *...

    纯javascript代码编写计算器程序.pdf

    5. 事件处理的JavaScript代码中存在一些语法错误和错误的注释符号。例如,"jia(),jian(),cheng(),chu()" 函数定义中存在多余的",",以及注释符号使用不当(应该使用 "//" 而不是 "//")。这些需要修正才能保证代码的...

    JavaScript中的parse()方法使用简介

    在JavaScript中,Date对象提供了多种处理日期和时间的方法,其中之一就是Date.parse()方法。本文将详细介绍JavaScript中parse()方法的使用,帮助JS初学者打好基础。 ### Date.parse()方法介绍 Date.parse()是一个...

Global site tag (gtag.js) - Google Analytics