zoukankan      html  css  js  c++  java
  • JavaScript使用方法

    1     <script> 标签
      <script> 标签用于定义客户端脚本,比如 JavaScript。
      在 HTML 中,JavaScript 代码必须位于 <script> 与 </script> 标签之间。
      script 元素既可以包含脚本语句,也可以通过 src 属性指向外部脚本文件。

      注:旧的 JavaScript 例子也许会使用 type 属性:<script type="text/javascript">。
             type 属性不是必需的。JavaScript 是 HTML 中的默认脚本语言。

    1.1  <script> 属性  

    属性 是否必填 适用范围 说明
    async 可选 外部文件 表示应该立即下载脚本,但不应妨碍页面中的其它操作,比如下载资源或其它脚本文件
    charset 可选 外部文件 表示通过src指定的代码的字符集
    defer 可选 外部文件,IE4-7也支持嵌入代码 表示脚本可以延迟到文档完全解析和显示之后再执行
    language 可选(已废弃)   原用于表示编写代码的脚本语言
    src 可选,使用外部文件时为必填选项 外部文件 表示包含要执行的外部文件
    type 可选,默认text/javascript   可以看成是language的替代属性,表示编写代码使用的脚本语言的内容类型(也称为MIME类型)。

      

    (1)     关于type属性,虽然text/javascript和java/ecmascript都已经不被推荐使用,但一直以来使用的都还是text/javascript,实际上,服务器在传送JavaScript文件时使用的MIME类型通常是application/x-javascript,但在type中设置这个值可能导致脚本被忽略,另外,在非IE浏览器中还可以使用application/javascript和application/ecmascript。type如果没有指定,默认值为text/javascript。

    (2)    只要不包含async和defer,浏览器会按照<script>在页面中出现的顺序依次解析;设置了defer时,会立即下载<script>元素,但是延迟执行,在规范中,要求多个含defer属性的脚本顺序执行且在DOMContentLoaded事件前执行,但是在实现中不一定满足这些要求;在HTML5中添加了async属性,和defer类似,也只是适用于外部文件,告诉浏览器立即下载文件,但延迟执行,不同的是,多个含async的脚本即便在规范中也没有规定执行的顺序,异步脚本再load事件前执行,但可能在DOMContentLoaded之前或之后执行。

    (3)    在阅读之前的代码或者用一些IDE生成代码时,常常可以看到下面的结构:

    显示 说明 实体名称 实体编号
      半方大的空白 &ensp; &#8194;
      全方大的空白 &emsp; &#8195;
      不断行的空白 &nbsp; &#160;
    < 小于 &lt; &#60;
    > 大于 &gt; &#62;
    & &符号 &amp; &#38;
    " 双引号 &quot; &#34;

      有些不支持JavaScript的浏览器,可以将JavaScript代码包含在一个HTML注释中(由于所有主流浏览器均支持JavaScript,所以不再推荐使用):  

    <script><!--
    //--></script>

      对于一些老旧浏览器或者禁用了JavaScript的浏览器,还可以使用<noscript></noscript>元素来呈现相关的说明。

    1.2   <script> 位置

       脚本可被放置与 HTML 页面的 <body> 或 <head> 部分中,或兼而有之。

       注:把脚本置于 <body> 元素的底部,可改善显示速度,因为脚本编译会拖慢显示。

    (1)   <head> 中的 JavaScript
      JavaScript 函数被放置于 HTML 页面的 <head> 部分

      例: 

    <!DOCTYPE html>
    <html>
    <head>
    <script>
    function myFunction() {
        document.getElementById("demo").innerHTML = "段落被更改。";
    }
    </script>
    </head>
    
    <body>
    
    <h1>一张网页</h1>
    <p id="demo">一个段落</p>
    <button type="button" onclick="myFunction()">试一试</button>
    
    </body>
    </html>

    (2)   <body> 中的 JavaScript
      JavaScript 函数被放置于 HTML 页面的 <body> 部分。

      例:  

    <!DOCTYPE html>
    <html>
    <body> 
    
    <h1>A Web Page</h1>
    <p id="demo">一个段落</p>
    <button type="button" onclick="myFunction()">试一试</button>
    
    <script>
    function myFunction() {
       document.getElementById("demo").innerHTML = "段落被更改。";
    }
    </script>
    
    </body>
    </html>

    2     JavaScript 使用方法

      在HTML中使用JavaScript的方式主要有:

    2.1  引入外部脚本
        在Html中使用<script>标签元素引入外部文件(推荐),将代码写入外部文件中,JavaScript 文件的文件扩展名是 .js。

      如需使用外部脚本,请在 <script> 标签的 src (source) 属性中设置脚本的名称。

      可通过完整的 URL 或相对于当前网页的路径引用外部脚本:

    (1)   使用完整的 URL 来链接至脚本

      例:  

    <script src="https://www.w3school.com.cn/js/myScript1.js"></script>

    (2)  使用位于当前网站上指定文件夹中的脚本

      例:

    <script src="/js/myScript1.js"></script>

    (3)  链接了与当前页面相同文件夹的脚本:

      例:

    <script src="myScript1.js"></script>

    备注:

    a.    可以在 <head> 或 <body> 中放置外部脚本引用。

    b.    在XHTML文档中,导入外部文件时,可以使用简写方式<script/>但是在HTML中只能<script></script>。

    c.    导入外部文件时,src属性是必须的,这个时候嵌入在<script></script>中的代码(如果有)会被忽略。

    d.    src属性也可以指定来自外部域的JavaScript文件,这一点让<script>元素异常强大,也备受争议,因为可能会让人恶意注入脚本。

    e.    外部文件只需要包含<script></script>中的代码即可,不需要包括<script>元素本身,意思就是外部脚本不能包含 <script> 标签。

    f.     外部文件一般扩展名为.js,但这不是强制的。

    引入外部脚本优势:

    a.    分离了 HTML 和代码
    b.    使 HTML 和 JavaScript 更易于阅读和维护
    c.    已缓存的 JavaScript 文件可加速页面加载

    2.2  在<script>内写入JavaScript代码。

      在<script>元素中内嵌代码时,只需要指定type属性,但代码中不能出现</script>字符串,否则会解析出错。

      例:  

    <script type="text/javascript">
        //document.writeln('</script>');会将字符串中的</script>作为前面的标签结束符来解析,从而出现异常
        document.writeln('</scr'+'ipt>');//通过将</script>分开,从而避免作为<script>的结束标签解析
    </script>

    2.3  将脚本程序代码作为某个元素的事件属性值或超链接的href属性值

      超链接<a>的href属性除了可以使用http和mailto等协议之外,还可以使用Javascript协议。

      例:

    <a href=”javascript:alert(new Date())”;>javascript</a>

      单击这个超链接,浏览器将会执行JavaScript:后面的脚本程序代码。

    3     文档模式    

      在IE5.5中开始引入文档模式的概念,通过使用通过文档类型(doctype)切换实现的,最初包括混杂模式(quirks mode)和标准模式(standards mode),混杂模式让IE的行为与包括非标准特性的IE5相同,标准模式则让IE的行为更接近标准行为。在IE引入文档模式之后,其他浏览器也纷纷仿效。之后,IE又提出一种所谓准标准模式(almost standards mode),这种模式下的浏览器特性有很多是符合标准的,但也不尽然。所有浏览器默认开启混杂模式。

      可以通过下面的方法启动标准模式: 

    <!-- HTML 4.01 严格型-->
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    
    <!-- XHTML 1.0 严格型-->
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    
    <!-- HTML5 -->
    <!DOCTYPE html>

      通过过渡性或框架集型来触发准标准模式:  

    <!-- HTML 4.01 过渡型-->
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    
    <!-- HTML 4.01 框架集型-->
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 FrameSet//EN" "http://www.w3.org/TR/html4/frameset.dtd">
    
    <!-- XHTML 1.0 过渡型-->
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <!-- XHTML 1.0 框架集型-->
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 FrameSet//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

    参考来源:https://www.cnblogs.com/linjisong/archive/2012/08/23/2642355.html

  • 相关阅读:
    汇总jQuery的61种选择器及示例
    ACM2028
    Welcome to Erhan Blog
    学习日记-2019529
    3.1-栈
    chrome插件推荐
    Spark RDD
    爬虫-怎么爬静态网站
    一些iOS面试基础题总结
    [PHP] 报错和“@”
  • 原文地址:https://www.cnblogs.com/iamspecialone/p/11209305.html
Copyright © 2011-2022 走看看