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. map 和 reduce

    注意:reduce需要 from functools import reduce map的使用: >>> def func(x): ... return x*x ... >&g ...

  2. Unity脚本获取内存和FPS

    using System; using System.Collections.Generic; using UnityEngine; public class Debugger : MonoBehav ...

  3. Seek the Name, Seek the Fame

    poj2752:http://poj.org/problem?id=2752 题意:给你一个串,让你求前n个字符和后n个字符相同的n有多少,从小到大输出来. 题解:这一题要深刻理解KMP的next数组 ...

  4. hdu 4550 卡片游戏

    http://acm.hdu.edu.cn/showproblem.php?pid=4550 贪心 #include <cstdio> #include <cstring> # ...

  5. CLOUDSTACK接管VCENTER,意外频出,但最终搞定

    没办法,第一次吃螃蟹,总是经常住. 还好,我有一颗不肯媚俗的心~~ 但二级存储,和 存储的性能,也必须纳入考虑范围了.

  6. U盘安装,FTP安装CENTOS--错误信息:Unable to read package metadata.This may be due to a missing repodata directory.

    考察repodata下的repomd.xml里的文件和同一目录下的那些文件是不是一一对应的.主要看有没后缀.如果不一致,则要用XML里的文件后缀加上去. 弄了我好多次. http://renzhenx ...

  7. appendGrid的使用

    新的项目中需要使用类似appendGrid的控件,当然开始时是不知道这个控件的,开始是想做成如下这样 这其实是Bugfree的搜索栏,并且我也说不好我要做的这个东西应该叫什么,大体可以说是动态的添加或 ...

  8. PCRE

    http://blog.sina.com.cn/s/blog_6a1837e901010ckv.html http://hubeihuyanwei.blog.163.com/blog/static/2 ...

  9. iOS进阶读物

    不知不觉作为 iOS 开发也有两年多的时间了,记得当初看到 OC 的语法时,愣是被吓了回去,隔了好久才重新耐下心去啃一啃.啃了一阵,觉得大概有了点概念,看到 Cocoa 那么多的 Class,又懵了, ...

  10. 简单的多表插入(oracle)

    简单的多表插入语句: insert all into 表1(字段1,2...) values(值1,值2......) into 表2(字段1,2...)) values(值1,值2......) s ...