JavaScript 在浏览器端使用

JavaScript 在浏览器端使用

  提个醒儿:如果你已经使用过 JS,请忽略本文吧~~

  在浏览器端使用 JS 的方法其实就是通过 script 标签实现的,这个元素是由 Netscape 创造的,当初他们也面临着如何在HTML中使用 JS 的问题,经过一系列的尝试和纠错,最终决定为WEB增加对脚本的支持。<script>定义了以下6个属性:

  • async  可选属性, 使用过ES6语法的都知道这是异步的意思,在这里也正如此,立即下载脚本,但不应妨碍页面中的其他操作,需要注意的是,该属性只对外部脚本有效。
  • charset  可选属性,表示通过 src 属性指定的代码的字符集。额...好像很少用。
  • defer  可选属性,表示脚本可以延迟到文档完全被解析和显示之后再执行。当然除了该属性也可以通过其他途径去实现同样的效果,详情后面章节再作讨论。
  • language  已经弃用了。
  • src  可选属性,表示包含要执行代码的外部文件。这个属性跟 <img> 的src有一个共同点就是,不存在跨域问题哦~~
  • type  可选属性,language属性的替代者,表示编写代码使用的脚本语言的内容类型,默认值为 text/javascript。

完了回到正题,如何使用,有以下几种方式:

  1.直接将 JS 代码写在 <script> 标签内部

  

  

  2.通过src属性引用本地js文件

  3. 引用其他域下的js文件

  最后,需要注意以下几点:  

  1.  <script> 标签不仅可以写在 <head> 里面,还可以写在 <body> 里面,差别的就是执行的顺序,如果写在 <head> 中,<script> 标签就会先于网页的结构(DOM)被加载执行,所以如果此时没有延迟让该标签延迟加载的情况下,就有可能出现bug,比如说,您在网页结构都没有加载(DOM没有被挂载)的情况下去操作DOM,那么必然就会抛出找不到节点的异常。避免该异常的方法就是通过defer属性,或者一些js代码去让这个脚本延迟加载,最暴力的是直接写在body里面的最后面或者body后面html前面。

  2.使用 defer 属性可以让脚本在文档完全呈现之后再执行。延迟脚本总是按照指定它们的顺序执行。但是,使用 async 属性不能保证异步脚本按照它们在页面中出现的顺序执行。

原文地址:https://www.cnblogs.com/jonas-von/p/9951610.html

时间: 2024-11-01 10:58:00

JavaScript 在浏览器端使用的相关文章

[javascript]在浏览器端应用cookie记住用户名

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action="http://www.baidu.com" id="frm"> 用户名<input

如何用JavaScript在浏览器端获取图片的原始尺寸大小?

var img = $("#img_id"); // Get my img elem var pic_real_width, pic_real_height; $("<img/>") // Make in memory copy of image to avoid css issues .attr("src", $(img).attr("src")) .load(function() { pic_real_widt

浏览器端javascript调用手机终端本地功能实现02-功能点汇总

上篇博文已经说明,本篇直接进入主题.本篇大致说明总体功能以及代码用途,下篇将功能点逐一详细说明. 功能点包括: 拍照相关接口(camera) 功能函数名称 作用 备注 invokeCamera() 调用摄像头拍照 requestAlbum() 调用相册功能 requestAlbumMulti() 相册多选 requestAlbumMultiUpload() 相册多选完后上传 2. 录音相关接口(media) 功能函数名称 作用 备注 startRecord() 录制音频 stopRecord()

阮一峰javascript标准参考教程 (IndexedDB:浏览器端数据库)

1.概述 随着浏览器的处理能力不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少用户等待从服务器获取数据的时间. 现有的浏览器端数据储存方案,都不适合储存大量数据:cookie不超过4KB,且每次请求都会发送回服务器端:Window.name属性缺乏安 全性,且没有统一的标准:localStorage在2.5MB到10MB之间(各家浏览器不同).所以,需要一种新的解决方案,这就是 IndexedDB诞生的背景. 通俗地说,IndexedDB就是浏览器端数据库,可以被网页脚本程

浏览器端javascript调用手机终端本地功能实现03-拍照

上篇大致说明了已实现的功能点及大致的实现方式,本篇详细说明如何通过js调用拍照的相关功能. js代码部分已经在<浏览器端javascript调用手机终端本地功能实现02>中展现,主要说明android部分和ios部分的实现.请将js代码或文件放在要加载的服务器页面里. android端实现 1 //定义拍照相关接口 2 private JSInterfaceCamera jsInterfaceCamera; 3 //初始化 4 jsInterfaceCamera=new JSInterface

浏览器端javascript调用手机终端本地功能实现01-前言

一直没有写博文的习惯,可能也不是什么好习惯.有了想记下来的技术点,都写成笔记.如今觉得写写博文也挺不错,现在在深圳启梦网络科技有限公司工作,主要工作做app开发.想想自己从java服务器端开发,再到现在安卓,苹果应用软件开发的一路走来,经过了2,3年,深刻的理解不断学习充实自己的好处. 最近公司希望web app轻应用能够调用手机端的一些功能,譬如:拍照,相册选择,录音,播放,文件上传,二维码,条形码扫描,推送等功能.服务器端的一次编码即可完成ios,android端的开发.实现这些功能,核心点

浏览器端的javascript加载器

commonJS,定义了一种同步加载脚本的规范.对于浏览器端而言,因为js脚本都是在远端,用同步的方式可能会长时间阻塞线程.因此,浏览器端的js加载器并不会严格按照commonJS来做.seajs作为一个试图遵循commonJS规范的加载器,是在规范的基础上在外面包一层define,来异步加载js,以下是seajs官网的一个例子: // 所有模块都通过 define 来定义 define(function(require, exports, module) { // 通过 require 引入依

浏览器端对服务器端返回的日期的处理方式

用javascript的 Date 函数来处理:     var date=jQuery.parseJSON(data)将返回的数据解析成为jQuery对象.     var start = new Date(date);     var year = start.getFullYear();     var month = start.getMonth();     var day = start.getDate(); 浏览器端对服务器端返回的日期的处理方式,布布扣,bubuko.com

通过javascript在网页端生成zip压缩包并下载

原文:通过javascript在网页端生成zip压缩包并下载 zip.js是什么 zip.js的github项目地址:http://gildas-lormeau.github.io/zip.js/ 通过zip.js封装一个能在网页端生成zip文件的插件, 直接在网页中创建包含文件夹和文件的压缩包,也可以自定义名字并下载: 如何使用: 1:引用zip.js 2:引用jQuery; 3:并引用封装的ZipArchive.js ,(因为zip.js的api使用起来比较繁琐,所以自己封装实现了这个插件)