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. JS 输出与变量

    1. JS的输出 innerHTML: <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...

  2. block 高级

    //从后往前传值 声明block属性 //copy 目的是 将栈区的block拷贝一份到堆区 @property(nonatomic,copy)void (^sendValueBlock)(id); ...

  3. 也谈 Python 的中文编码处理

    最近业务中需要用 Python 写一些脚本.尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息. 很快,我就遇到了异常: UnicodeEncodeError: ...

  4. 构建高可用web站点(四)

    首先我们来了解负载均衡的概念:英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡.分摊到多个操作单元上进行执行,例如Web服务器.FTP服务器.企业关键应用服务器和其它关键任务服 ...

  5. VS2013下的Nmake编译链接成win XP的可执行程序

    nmake下没有指定toolset=vc120_xp等类似物.但是,可以指定Link.exe的链接参数,指定子系统就可以了,/SUBSYSTEM:[WINDOWS | CONSOLE],5.01 5. ...

  6. UNDO 100%

    另外查了下v$undostat,发现begin_time已经很久没有改变, BEGIN_TIME           END_TIME             MAXQUERYLEN MAXCONCU ...

  7. SDUT2484 算术表达式的转换(表达式树)

    题目链接. 分析: 转换成表达式树,然后先序.中序.后序遍历. AC代码如下: #include <stdio.h> #include <string.h> #define m ...

  8. BZOJ1646: [Usaco2007 Open]Catch That Cow 抓住那只牛

    1646: [Usaco2007 Open]Catch That Cow 抓住那只牛 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 634  Solved ...

  9. Delphi HTTPRIO控件怎么设置超时参数

    HTTPRIO控件怎么设置超时参数 //HTTPRIO1: THTTPRIO  设置5分钟超时 HTTPRIO1.HTTPWebNode.ConnectTimeout := 5000; Connect ...

  10. String的equals方法和==

    String类的对象是字符串常量,一切看起来改变了String对象的操作,其实只是改变了字符串引用变量所引用的字符串罢了. Java中的字符串存放在一个公共的存储池中,引用指向存储池中相应的位置,编译 ...