Bin*_*Mee 13 javascript widget reactjs
我正在编写一个聊天小部件,它将分发给最终用户,只需要很少的代码放入他们的网站.通常的常规.
我的小部件将用React编写.我知道实现这一目标的几种方法.让我列出我能想到的方式.
当然,在任何一种情况下,源URL都将呈现一个由webpack捆绑的React页面.
我想知道开发小部件的最佳实践.所以我经历了它的流行实现.我非常喜欢Intercom的小部件.它是用React编写的.我分析了它是如何工作的.最小的javascript在网页上加载异步.它正在注入一个iframeid intercom-frame.它iframe有一个带有源URl的脚本.显然它是React捆绑.
我不明白的是,在这之下iframe,a div创建了三个iframes.一个显示聊天气泡,另一个显示聊天气泡图标,最后一个显示实际的聊天窗口.那些iframe没有源URL,我猜这个包是由widget javascript创建的第一个iframe提供的.
我遇到了这个问题,部分回答了我的问题.从答案来看,
使用窗口消息在您的客户网页和您的iframe之间公开一些API.
然后,第一个脚本异步加载主代码(iframe代码),而不包含在其中.
我不明白的是,
1.)他们如何通过窗口消息实现它?
2.)他们如何设法div用iframe另一个iframe脚本创建一个with s ?小部件javascript不会根据它的来源创建这些元素.它应该由widget js生成的iframe中的React包完成.
3.)一个反应束如何iframe在父DOM中创建反应元素?
iframeIntercom 脚本创建的所有内容都没有src属性,这意味着它们不受同源策略的约束。因此,他们可以修改父页面 html,反之亦然。
但是,我不明白为什么他们需要单独的iframe. 以及为什么使用一个脚本来注入另一个脚本来注入主要的 html 内容。难道第一个脚本没有足够的能力来注入html内容吗?我希望能对这些事情感到轻松。
| 归档时间: |
|
| 查看次数: |
1480 次 |
| 最近记录: |