Web浏览器实现的Javascript,通过Web浏览器实现的JavaScript引入了大量可脚本化的对象(1、Web浏览器 2、HTML 3、HTML中的内容)
 Web浏览器中的Javascript
Web浏览器的环境
1、作为全局对象的Window对象和客户端JavaScript代码的全局执行环境
2、客户端对象的层次和构成它的一部分的文档对象模型(DOM)
3、事件驱动的编程模型
 
全局对象位于作用域链的头部
Window对象位于作用链的头部
Window对象代表显示文档的窗口(或帧)
Document对象代表HTML文档
 
客户端对象层次(BOM)和0级DOM
 
客户端对象层次

self,window,
         --- parent,top各种
        |    Window对象
        |
        |--- navigator
        |    Navigator对象
        |
        |--- frames[]                          --- forms[]  --------elements[]
        |    Frames对象数组                 |    Form对象数组     HTML表单元素
        |                                          |                            objects:
当前- |--- location                          |--- anchors[]              Button
窗口- |    Location对象                     |    Anchor对象数组       Checkbox
        |                                          |                                 FileUpload
        |--- history                           |--- links[]                   Hidden
        |    History对象                      |    Link对象数组             Password
        |                                          |                                 Reset
        |----document  ------|---- images[]              Select  -------options[]
        |    Document对象                  |     Images对象数组       Submit          Option对象数组 
        |                                          |                                 Text
         --- screen                            |---- applets[]              Textarea 
             Screen对象                       |     applets对象数组
                                                   |
                                                    ---- embeds[]
                                                           嵌入对象数组

浏览器对象模型BOM
    以window为根节点的树叫做浏览器对象模型。

文档对象模型DOM以及0级DOM
    文档对象模型(Document Object Model,DOM)是表示文档和访问、操作构成文档的各种元素的应用程序接口(API)。
    在上面的BOM中以document为根节点的树叫做0级DOM。它是标准DOM(1级DOM、2级DOM)中已经定义了的一系列的HTML专有API,并得到了大多数浏览器的支持。
    
Window对象
    重要的window属性有:
        closed                        一个布尔值,只有当窗口被关闭时才为true。
        defaultStatus,status    在浏览器状态栏中显示的文本。
        document                   表在窗口中显示的html文档。
        frames[]                     代表窗口中的各个框架(如果存在)。
        navigator                    代表包含浏览器总体信息的navigator对象。
        history                       代表用户浏览窗口的历史。
        location                      代表在窗口中显示的文档的url。设置这个属性会引发浏览器装载一个新的文档。
        name                         窗口的名称。可被html标记的<a>的target性质使用。
        opener                       对打开当前窗口的window对象的引用。如果当前窗口被用户打开则它的值为null。
        parent                        如果当前窗口是框架,它就是对窗口中包含这个框架的引用。
        self                            自引用属性,是对当前window对象的引用,与window属性同义。
        top                            如果当前窗口是框架,它就是对包含这个框架的顶级窗口的window对象的引用。
        window                      自引用属性,是对当前window对象的引用,和self同义。
    重要的window方法有:
        alert(),confirm(),prompt() 
                                         向用户显示简单的对话框,confirm()和prompt()用于获取用户的响应。
        close()                    关闭窗口。
        focus(),blur()      请求或放弃窗口的键盘焦点。focus()方法还通过把窗口提到堆栈顺序的最前面,从而确保窗口可见。
        moveBy(),moveTo()   移动窗口。
        open()                    打开新的顶级窗口,用指定的特性显示指定的url。

print()                    打印窗口或框架中内容,就像用户点击了窗口工具栏中的打印按钮一样(只有netscape4和其后的版本以及ie5和其后的版本支持

该方法)。

resizeBy(),resizeTo()   调整窗口大小。
        scrollBy(),scrollTo()     滚动窗口中的文档。
        setInterval(),clearInterval()
                                        设置或取消重复调用的函数,该函数在两次调用之间有指定的延迟。
        setTimeout(),clearTimeout()
                                        设置或者取消在指定的延迟后要调用一次的函数。 

 
 
 
在HTML中嵌入脚本
1、放置在标记对<script> </script>之间
2、放置在由<script>标记的src属性指定 的外部文件中
3、放在事件句柄中,该事件句柄由onclick等这样的属性值指定
4、在一个url之中,使用特殊的"javascript: "协议
 
注:尽管在装载和解析一个HTML文件的过程中,各个脚本在不同时刻执行,但是这些脚本却是同一个Javascript程序的组成部分,
因为在一个脚本中定义的函数和变量适用于随后出现的同一个文件中的所有脚本,
JavaScript代码可以和它所嵌入的文档交互,即使代码和文档具有不同的来源,当使用src指定载入一个脚本时,就给了这段脚本
的作者,完全控制web页面的权力
 
 <script> defer属性,可用来延迟加载脚本 
<noscript></noscript>标记,当浏览器Javascript功能被关闭时执行。
 
 
事件句柄和事件句柄函数
如:onclick  onchange等为事件句柄,事件句柄的属性值,为事件句柄函数(如果为普通语句,会自动生成匿名函数)
 
URL中的JavaScript
如:javascript:window.open("about:black");void 0;
放在HTML中元素的onclick等属性上,运行代码,并返回值(最后一个语句返回)。
 
JavaScript程序的执行
1、当一个文件有多个脚本文件(src)的时候,脚本按照它们出现的顺序来执行
2、script标记中JavaScript代码作为文档载入和解析过程的一部分来执行
 
 
客户端Javascript线程模型是单线程
 
当脚本载入和执行的时候,文档解析就停止下来,并且当事件句柄执行的时候,Web浏览器停止对用户输入的响应,以及UI线程的执行。
 
注:如果一个事件句柄进行计算密集的任务,浏览器可能变得无法响应,可能会导致用户认为浏览器崩溃了。
 
[!ECDATA[
 
]]>
 
功能测试 使用条件注释
@if @else @end
 
JavaScript 的安全性
1、JavaScript不能做什么
a、客户端的Javascript不提供任何方式来读取、写入和删除客户端计算机上的文件/目录
b、不提供通用的网络原语,无法为任何主机打开一个socked或接受一个来自其他主机的连接
 
注:HTML的FileUpload的value属性无法手动设置,只能让用户自己手动选择。
 
2、同源策略
同源策略是对JavaScript代码能够和哪些web内容交互的一条完整的完全限制。
一个脚本只能读取与包含这一脚本的文档具有相同来源的窗口和文档的属性。
 
当使用XmlHttpRequest对象脚本化HTTP时,同源策略也发挥作用(针对的web服务器载入包含文档的Web服务器)
 
文档的来源定义:协议 主机  端口
有一个不同,来源就不同。
 
可通过Document.domain来实现不受同源策略的约束,将两个文档的domain改成一样(如:example.com,域名格式必须至少为两级,不可设为顶级域名)
 
跨站脚本(XSS) 以及如何防止XSS攻击
 
其他的Web相关JavaScript嵌入
1、用户脚本,如Greasemonkey 
2、SVG
3、XUL
4、ActionScript
 
 

JavaScript 客户端JavaScript之 Web浏览器的环境的更多相关文章

  1. JavaScript 客户端JavaScript之 脚本化浏览器窗口

    1.计时器 客户端Javascript以全局函数setTimeOut().clearTimeOut().setInterval().clearInterval()提供这一功能.   前者是从运行的那一 ...

  2. JavaScript 客户端JavaScript之脚本化HTTP(通过XMLHttpRequest)

    XMLHttpRequest对象的设计目的是为了处理由普通文本或XML组成的响应:但是,一个响应也可能是另外一种类型,如果用户代理(UA)支持这种内容类型的话.   大多数浏览的客户端JavaScri ...

  3. JavaScript 客户端JavaScript之事件(DOM API 提供模块之一)

    具有交互性的JavaScript程序使用的是事件驱动的程序设计模型.   目前使用的有3种完全不同的不兼容的事件处理模型. 1.原始事件模型 (一种简单的事件处理模式) 一般把它看作0级DOM API ...

  4. JavaScript 客户端JavaScript之 脚本化文档

    客户端JavaScript的存在把静态HTML转变为交互式的Web应用程序,脚本化Web页面的内容正是JavaScript存在的理由.   一个文档对象模型或者说DOM就是一个API,它定义了如何访问 ...

  5. JavaScript 客户端JavaScript之cookie和客户端持久性

    Document对象都有一个cookie属性,它使得JavaScript代码能够在用户的硬盘上持久地存储数据, 并且能够获取以这种方式存储的数据.客户端持久性是赋予WEB应用程序记忆力的一种简单方法. ...

  6. JavaScript 客户端JavaScript之样式表操作(DOM API 提供模块之一)

    层叠样式 表和动态HTML   层叠样式表(CSS)是指定HTML文档或XML文档的表现的标准.     使用CSS和Javascript,可以创建出各种视觉效果,这些效果可以统称为动态HTML(DH ...

  7. JavaScript 客户端JavaScript之Document对象中的表单和表单元素

    Form对象 代表一个HTML表单(document可以有多个表单元素) 表单访问 document.form[document.forms.length-1] 访问表单元素 document.for ...

  8. 第十一章:WEB浏览器中的javascript

    客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...

  9. JavaScript权威指南--WEB浏览器中的javascript

    知识要点 1.客户端javascript window对象是所有客户端javascript特性和API的主要接入点.它表示web浏览器的一个窗口或窗体,并且可以用window表示来引用它.window ...

随机推荐

  1. HDU 1312:Red and Black(DFS搜索)

      HDU 1312:Red and Black Time Limit:1000MS     Memory Limit:30000KB     64bit IO Format:%I64d & ...

  2. UVA 11389(贪心问题)

    UVA 11389 Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Description II  ...

  3. [Android] 混音器AudioMixer

    AudioMixer是Android的混音器,通过混音器可以把各个音轨的音频数据混合在一起,然后输出到音频设备. 创建AudioMixer AudioMixer在MixerThread的构造函数内创建 ...

  4. [flex & bison]编译器杂谈

    flex与bison是编译器设计工具.这里的编译器为广义,其中包括一般的编译器.脚本解析器等,需要进行语言结构解析来得出意义的程序. 当我们需要用一个语言来设计一款编译器时,需要考虑太多设计重心外的东 ...

  5. ajax+json数据传输

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  6. HDU 2444 The Accomodation of Students(判断是否可图 + 二分图)

    题目大意:有一群人他们有一些关系,比如A认识B, B认识C, 但是这并不意味值A和C认识.现在给你所有互相认识的学生,你的任务是把所有的学生分成两个一组, 住在一个双人房里.相互认识的同学可以住在一个 ...

  7. 【转】 Linux内核中读写文件数据的方法--不错

    原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法  有时候需要在Linuxkernel--大 ...

  8. Hadoop CombineFileInputFormat实现原理及源码分析

    Hadoop适用于少量的大文件场景,而不是大量的小文件场景(这里的小文件通常指文件大小显著小于HDFS Block Size的文件),其主要原因是因为FileInputFormat在为这些小文件生成切 ...

  9. 解读sample5

    说明 被测试代码文件 sample1.h.sample1.cc和sample3-inl.h 测试代码文件 sample5_unittest.cc 官网上如是描述sample5: Sample #5 i ...

  10. L - Cat VS Dog - HDU 3829(最大独立集)

    题意:有P个孩子,有的孩子喜欢猫不喜欢狗,有的喜欢狗不喜欢猫(喜欢的和不喜欢的一定是相相对立的动物),动物园有N只猫,M只狗,每个孩子都有喜欢的猫讨厌的狗(或者喜欢的狗讨厌的猫),现在动物园要送走一批 ...