npm 包 ngx-post-message 使用教程

阅读时长 5 分钟读完

当我们在网页中嵌入 iframe 或使用跨域方案时,需要在不同的页面间进行通信。ngx-post-message 是一个优秀的 npm 包,提供了便捷的跨页面通信解决方案。

安装

首先,我们需要在项目中安装该 npm 包:

引入模块

在需要使用 ngx-post-message 的模块中,我们需要引入 ngx-post-message 模块:

-- -------------------- ---- -------
------ - -------------------- - ---- -------------------

-----------
  -------- -
    -- ---
    --------------------
  --
  -- ---
--
------ ----- --------- - -

发送消息

在发送消息端,我们可以通过 ngx-post-message 服务的 SendMessage 方法向其他页面发送消息:

-- -------------------- ---- -------
------ - --------- - ---- ----------------
------ - --------------------- - ---- -------------------

------------
  --------- -----------
  --------- - ------- ------------------------------------- -
--
------ ----- ------------- -
  ------------------- ---------------------- ---------------------- --

  ------------- -
    ----- ----------- - ------- ---- -- - ---------
    ----- ------------ - ---------------------
    --------------------------------------------------- --------------
  -
-

在 SendMessage 方法中,我们需要传入两个参数:

  • messageData:与消息有关的数据,通常是对象或字符串。
  • targetOrigin:接收消息的目标源地址。如果此参数为 '*',则意味着不限制目标源地址。

接收消息

在接收消息端,我们需要调用 NgxPostMessageService 的 GetMessage 方法,并使用 Observable 订阅消息数据:

-- -------------------- ---- -------
------ - --------- - ---- ----------------
------ - ---------------------- ------------------- - ---- -------------------

------------
  --------- -----------
  --------- - ----- ----------- ------ -
--
------ ----- ------------- -
  ------------ ----

  ------------------- ---------------------- ---------------------- -
    --------------------------------------------------------- -------------------- -- -
      ---------------- - -----------
    ---
  -
-

在 GetMessage 方法中,我们可以不传任何参数。通过订阅 Observable,我们可以在消息到达时接收到消息数据,从而进行其他的操作。

示例代码

下面是一个完整的使用案例,我们可以在两个不同的网页 tab 中运行此代码。

发送消息端:

-- -------------------- ---- -------
------ - --------- - ---- ----------------
------ - --------------------- - ---- -------------------

------------
  --------- -----------
  --------- - ------- ------------------------------------- -
--
------ ----- ------------- -
  ------------------- ---------------------- ---------------------- --

  ------------- -
    ----- ----------- - ------- ---- -- - ---------
    ----- ------------ - ------------------------
    --------------------------------------------------- --------------
  -
-

接收消息端:

-- -------------------- ---- -------
------ - --------- - ---- ----------------
------ - ---------------------- ------------------- - ---- -------------------

------------
  --------- -----------
  --------- - ----- ----------- ------ -
--
------ ----- ------------- -
  ------------ ----

  ------------------- ---------------------- ---------------------- -
    --------------------------------------------------------- -------------------- -- -
      ---------------- - -----------
    ---
  -
-

结语

ngx-post-message 是一个强大的 npm 包,提供了跨页面通信解决方案,并得到了广泛的应用。通过参考本文,您可以使用该 npm 包将不同页面之间的通信问题解决掉。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600564ee81e8991b448e18f3

纠错
反馈