9月9号=》461页-465页

18.1  跨文档消息传递

    在以前,如果要在两个window装载的HTML文档之间传递消息,实现起来可能比较困难,因为所有的JavaScript脚本都是在一个window对象中装载并执行,

    而两个window对象中的JavaScript对象很难相互传递消息。

    跨文档消息传递机制的出现改变了这种现状,跨文档消息传机制可以保证两个不同window中的JavaScript脚本能互相通信,这样就可以解决它们的消息传递问题了。

18.1.1  postMessage 与 onmessage

    跨文档消息传递靠的是window对象新增的一个方法和一个事件监听器属性。向指定窗口发送消息的方法如下。

      targetWindow.postMessage(message,targetOrigin):该方法用于向targetWindow中装载的HTML文档发送消息,只要先获取装载该文档的window对象即可。

    接收其他窗口发送过来的消息则靠的是window对象提供的如下事件监听器属性。

      onmessage:这是一个事件监听器属性,该事件监听器属性是一个形如functon(event){}的函数。

    onmessage所指定的事件监听器函数中声明了一个event形参,这个event形参是一个MessageEvent对象。

    MessageEent提供了如下属性:

      data:该属性返回消息传递所交换的信息。

      origin:该属性返回发送该消息的源域名。

      lastEventId:该属性返回发送该消息的事件ID。

      source:该属性返回发送该消息的窗口。

    通过上面介绍可以发现,跨文档消息传递时发送消息的文档只要两步即可。

      1:获取将要发送消息的目标窗口对于的window对象。

      2:调用目标窗口的window对象的postMessage(any message)方法发送消息。

    接收其他文档的消息也只需要两步即可。

      1:为window的onmessage事件绑定事件监听器。

      2:在事件监听器函数中通过event形参获得需要交换的数据。

18.1.2  跨文档消息传递示例

    脚本代码:

      var send = function()

      {

        //打开一个新窗口

        var targetWin = window.open(‘http://localhost:8888/target/target.html‘,‘_blank‘,‘width=400,height=300‘);

        //等该窗口装载完成时,向该窗口发送消息

        targetWin.onload = function()

        {

          //向http://localhost:8888/target发送消息

          targetWin.postMessage(document.getElementById("msg").value,"http://localhost:8888/target");

        }

      }

      //通过onmessage监听器监听其他窗口发送过来的消息

      window.onmessage = function(ev)

      {

        //忽略来自其他域名的跨文档消息(只接收http://localhost:8888的消息)

        if(ev.origin != "http://localhost:8888")

        {

          return;

        }

        var show = document.getElementById("show");

        //显示消息

        show.innerHTML += (ev.origin + "传来了消息:" + ev.data + "<br/>");

      };

    html代码:

      消息:<input type="text" id="msg" name="msg" />

      <button onclick="send();">发送消息</button>

      <div id="show"></div>

时间: 2024-12-21 06:17:59

9月9号=》461页-465页的相关文章

5月29号=》第41页-第45页

2.4 HTML5头部和元信息 <script>:该元素用于包含JavaScript脚本. <style>:该元素用于定义内部CSS样式. <link>:该元素用于链接外部CSS样式等资源. <title>:该元素用于定义文档标题. <base>:该元素用于指定该页面中所有链接的基准链接. 该元素属性如下: href:指定所有链接的基准链接. target:指定超链接默认在哪个窗口打开=>(_blank._parent._self._top

5月27号=》第30页-第35页

2.18 框架相关元素 HTML5删除了<frameset>.<frame>.<noframes>这三个标签 保留了<iframe>元素 2.2 HTML5新增的通用属性 2.2.1 contenEditable:该属性为true时可在页面直接对该标签进行编辑    用户编辑完后,内容会直接显示在该页面中(一旦  刷新页面就会重新加载,编辑的内容会丢失),开发  者可以通过该元素的innerHTML属性来获取编辑后    的内容   该属性具有"可

5月28号=》第35页-第40页

2.3.2 语义相关元素 <mark>:用于显示HTML页面中需要重点"关注"的内容,浏览器 通常会用黄色显示该标签内的内容. <time>:用来显示被标注内容是日期.时间或者日期时间.   使用该标签要指定datetime属性,格式为"yyyy-MM-ddTHH:mm"   如果<time>标签的内容直接符合以上格式,则可以不用指定datetime属性. <details>:该元素用于显示一段详细信息或某个主题的细节

6月11号=》121页-125页

6.1 样式单概述 W3C已经给出了两种样式单语言的推荐标准,一种是级联样式单CSS(Cascading Style Sheets), 另一种是可扩展样式单语言XSL(eXtensible Stylesheet Language). 6.1.1 CSS CSS主要提供如下两个功能: 1:对页面的字体.颜色控制更加细腻,让页面内容更富表现力,CSS的表现效果远远超出 传统HTML页面的color.bgcolor等属性的表现力. 2:通过CSS控制整站风格,CSS样式单可以同时控制整个站点所有页面的

8月19号=》436页-440页

16.1 Web Storage 在传统的HTML时代,浏览器的主要功能只是负责展现HTML页面,即使增加了JavaScript脚本,依然只是为动态地修改HTML页面服务.因此 浏览器只是一个“界面呈现工作”. 如果开发者需要在客户端存储少量数据,早起只能通过Cookie来实现,但Cookie存在如下3点不足: Cookie的大小被限制为4KB. Cookie会包含在每个HTTP请求中向服务器发送,这样势必导致多次发送重复数据. Cookie在网络传输时并未加密(除非整个应用都使用SSL),因此

8月11号=》386页-390页

14.9 navigator和地理位置 window对象有一个navigator属性,该属性对应于Navigator对象,该对象代表浏览该页面所使用的浏览器.该对象在不同 的平台上的信息并不完全相同,但总包含如下几个常用的属性. appName:返回该浏览器的内核名称. appVersion:返回该浏览器当前的版本号. platform:返回当前浏览器所在的操作系统. 14.9.1 HTML5新增的geolocation属性 HTML5为navigator新增了一个geolocation属性,这

8月5号=》346页-350页

13.11 创建对象 JavaScript中创建对象可以不用使用任何累.JavaScript中创建对象大概有3中方式. 13.11.1 使用new关键字调用构造器创建对象 代码示范: //定义一个函数,同时也定义了一个Person类 function Person(name,age) { this.name = name; this.age = age; } //使用new关键字创建Person实例 var p1 = new Person("张三",18); //输出该对象的属性值 a

7月29号=》301页-305页

13.5 运算符 JavaScript提供了相当丰富的运算符,运算符也是JavaScript语言的基础. 通过运算符,可以将变量连接成语句,语句是JavaScript代码中的执行单位. 下面依次介绍JavaScript中的运算符. 13.5.1 赋值运算符 =:即var num = 1; 13.5.2 算术运算符 +:即1+2 =3; -:即2-1 = 1; *:即2*2 =4; /:即4/2 = 2; %:即3%2=1; 13.5.3 位运算符 &:按位与. |:按位或. ~:按位非. ^:按

7月23号=》261页-265页

12.1 CSS3提供的变形支持 CSS3提供的变形支持可以对HTML组件进行常见的几何变换,包括旋转.缩放.倾斜.位移 4中变换,也可以使用变换矩阵进行变形. CSS3为变形支持提供了如下两个属性值. transform:该属性用于设置变形.该属性支持一个或多个变形函数.CSS3提供了如下变形函数. translate(tx [,ty]):该函数设置HTML组件横向上移动tx距离,纵向上移动ty距离.其中ty参数 可以省略,如果省略ty参数,则ty默认为0,表明纵向上没有位移. transla