<script>元素

文档对象模型(DOM)全称:Document Object Model
应用程序编程接口(API)全称:Application Programming Interface
浏览器对象模型(BOM)全称:Browser Object Model


DOM并不只是针对于JavaScript的,很多其它编程语言也都实现了DOM
DOM提供访问和操作网页内容的方法和接口
BOM可以控制浏览器显示的页面以外的部分
BOM提供与浏览器交互的方法和接口


<script>元素
<script>元素有六个可选属性,这里单讲几个常用的

  • src 属性: 表示要执行代码的外部文件
  • type 属性: 表示编写代码的脚本语言的内容类型。考虑到最大限度的浏览器兼容性,该属性的默认值为 text/javascript
  • defer 属性: 表示脚本会在页面加载完毕之后执行,注:只适用于外部脚本文件
  • acync 属性:表示立即下载脚本,但不妨碍页面中其他操作,注:只对外部文件有效

<script>使用

  • <script> 内容内代码从上而下执行,在它执行完毕之前,页面内其他内容不会被浏览器加载或显示
  • </script>出现在任何位置都会使得<script>内容结束
  • 当有多个 <script> 元素时,会按照从上往下的顺序,依次执行。引入文件也是同样的从上往下依次执行
举例:
<script type = "text/javascript">
    function(){
        alert("</script>");
    }
任何地方出现</script>都会结束,所以上面的代码会报错
    如果想要正确输出,可以加入转义字符 “\” 处理
    alert("<\/script>");

<script>引用

  • src属性 + 相对路径 如:app.js
  • src属性 + 绝对地址 如:https://www.jianshu.com/app.js。引入外部文件请保证外部文件不会失效。
  • 带有 src 属性的<script>元素最好不要在 <script> 和 </script> 之间加入任何代码,此处包含的代码会被忽略,而只会下载并执行外部脚本文件
  • 扩展名 .js 并不是必须的,最好加上以避免意料之外的错误
  • </script> 在 XHTML 也可以被省略(如下),但是在 HTML 中却不可以省略,为了稳妥起见,最好都加上
<script type = "text/javascript"  src = "app.js" />

<script>引入位置

  • 传统的做法会把所有的 <script> 元素都包含在页面的 <head> 元素中
    优点是: 统一管理,方便维护
    缺点是: 会导致页面会在加载并执行完所有 <script> 元素后才会被显示出来,这样会导致页面加载出现延迟,延迟期间页面一片空白,影响用户体验
  • 现在的做法是把 <script> 元素放在 <body> 的最底部,在页面所有内容之后引用
  • <script> 元素的 defer 属性,会将 脚本延迟到页面加载完成之后再执行:立即下载,延迟执行
    (延迟脚本最好只包含一个,理论上延迟脚本按顺序执行,现实中未必会这样)
    (defer 属性 只适用于外部脚本文件)
    (-- 最佳选择还是把延迟脚本放在页面底部 --)
<script type = "text/javascript" defer = "defer" src = "app.js"></script>
  • <script> 元素的 async 属性,异步脚本。
    只适用于外部脚本文件,告诉浏览器立即下载文件,并不是所有浏览器都支持它。
    它并不会按顺序执行,所以应该保证 不同的<script>间没有因果联系,不然会出错。
    不会阻碍页面内容显示,不会阻碍其他<script>元素加载,不会等待其他<script>元素加载完。
<script type = "text/javascript" async src = "app.js"></script>

<noscript>标签
用于不支持 JavaScript 脚本的浏览器,在支持 JavaScript 的浏览器中不会执行,不会显示
当 浏览器不支持 JavaScript 脚本时,会执行<noscript> 元素

<body>
    <noscript>
        <p> 本页面需要浏览器支持(启用)JavaScript! </p>
    </nosctipt>
</body>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350