onmessage 事件

实例

创建一个新的 EventSource 对象,并指定发送更新的页面的 URL。

每次收到更新时,都会发生 onmessage 事件。当 onmessage 事件发生时,会把接收到的数据放入 id="myDIV" 的 <div> 元素中:

var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
  document.getElementById("myDIV").innerHTML += event.data + "<br>";
};

亲自试一试

页面下方有更多 TIY 实例。

定义和用法

当通过事件源接收到消息时,会发生 onmessage 事件。

onmessage 事件的 event 对象支持以下属性:

  • data - 包含实际的消息
  • origin - 调用事件的文档的 URL
  • lastEventId - 在事件流中看到的最后一条消息的标识符

相关事件:

  • onopen - 当与服务器的连接打开时发生
  • onerror - 出现问题时发生

有关服务器发送事件(Server-Sent Events)的更多知识,请学习我们的 HTML5 服务器发送事件教程

浏览器支持

表中的数字注明了完全支持该事件的首个浏览器版本。

事件 Chrome IE Firefox Safari Opera
onmessage 9.0 不支持 6.0 5.0 11.0

语法

object.onmessage = function(){myScript};

亲自试一试

使用 addEventListener() 方法:

object.addEventListener("message", myScript);

亲自试一试

注释:Internet Explorer 8 或更早的版本不支持 addEventListener() 方法

技术细节

冒泡: 不支持
可取消: 不支持
事件类型: Event

更多实例

获取调用 onmessage 事件的文档的 URL:

var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
  document.getElementById("myDIV").innerHTML = event.origin;
};

结果会是:

https://www.w3school.com.cn/

亲自试一试