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. OPNET安装要点

    最近在做一点网络的仿真工作,需要用到OPNET这个工具,安装了一早上终于安装好了.安装过程如下: 1.安装visual studio 2010:其他版本如vs2005, vs2008也是可以的.vs2 ...

  2. 《FPGA零基础入门到精通视频教程》-第001a讲软件的安装

    高清视频和配套讲义这里下载 http://www.fpgaw.com/thread-67758-1-1.html 优酷视频不是很清晰

  3. C++访问权限【原创】

    可以访问private的有:1.本类的函数:2.友元函数.   可以访问protected的有:1.本类的函数:2.子类函数:3.友元函数.   可以访问public的有:1.本类的函数和对象:2.子 ...

  4. GFF 和 OGS 这两种触摸屏谁更好?

    我将从成本分析.制程分析.用户体验三个方面来回答楼主的问题.GFF的触摸屏从字面上翻译过来,就是一层玻璃cover,两层film构成的触摸屏.其中,玻璃cover作为整个手机的coverlens,从外 ...

  5. keil优化论

    谈到优化,其实很多人都哭笑不得,因为在一个C51软件工程师的生涯中,总要被KEIL的优化耍那么一次到几次.我被耍过,想必看着文章的你也被耍过,如果你回答说不,那只能说你写的C51程序不多! 看看KEI ...

  6. 如何在一台机器上安装两个MYSQL数据库

    1.正常安装第一个mysql(安装步骤省略) 2.在控制面板里停止第一个mysql服务 3.将C:\Program Files\MySQL目录下的所有目录和文件copy到另外一个路径,我这里是copy ...

  7. 【转】Android开发学习笔记:EditText的属性介绍

    原文网址:http://liangruijun.blog.51cto.com/3061169/627350 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追 ...

  8. Symmetric Tree——LeetCode

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...

  9. 黑马程序员_Java基础组成

    Java语言基础组成 2.1关键字 main不是关键字,但被JVM所识别的名称. 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有字母都为小写. 用于定义数据类型的关 ...

  10. HDOJ 1016 Prime Ring Problem素数环【深搜】

    Problem Description A ring is compose of n circles as shown in diagram. Put natural number 1, 2, -, ...