![]() |
1
20
纯Javascript应用程序称为SPA(单页应用程序),它们可以完全控制文档(页面)。但既然你问起嵌入一个小部件的问题,我不认为这就是这个问题的所在(网上有很多关于SPA的信息)。 我本来打算建议您使用Web组件来实现这一点——现在有很多Polyfill可以在几乎所有浏览器上实现这一点——但由于您的问题提到您想知道没有它是如何实现的,因此我将在下面详细介绍我的一种方法。 当创建纯JS小部件时,您需要确保您知道a)您不能控制全局空间,b)它需要很好地处理页面的其余部分。此外,由于您没有使用Web组件(并且正在寻找纯javascript(没有libs)),因此您还必须“手动”初始化小部件,然后将其插入到所需位置的页面中,这是一种去极化方法,在这种方法中,您为您的小部件分配了一个HTML标记名,您只需将其添加到文档中,就会发生奇迹:) 让我这样分解: 高斯消元法
下面是一个简单的Javascript小部件工厂
要使用上述内容创建新的小部件(HTML元素),您需要:
要将此小部件插入页面中的给定位置(例如id为“chat\u box”的DIV元素内部),您需要:
因此,这是使用本机(web)平台创建小部件的基础:) 创建可重用/可嵌入组件交付可重用和可嵌入组件的关键目标之一是确保不依赖全局空间。因此,您的交付方法(更像您的构建过程)将所有内容打包到一个JavaScript IIFD中,该IIFD还将为您的所有代码创建一个私有范围。 这些类型的单例可重用/可嵌入组件的另一个重要方面是,您的元素样式需要确保它们不会“泄漏”并影响页面的其余部分(需要与其他人友好相处)。我不会在这里详细介绍这个领域。(仅供参考:这也是Web组件真正派上用场的领域)
下面是一个聊天组件的示例,您可以将其添加到您希望页面显示的任何位置。组件作为
因此,只需将此脚本标记拖放到所需的位置,即可在多个位置使用它:
这只是一个如何实现的示例方法。为了支持向每个小部件传递选项(例如聊天id),定义样式以及其他可能的改进,从而提高运行时的效率,您必须添加更多内容。 另一种方法
您可以添加一次“脚本”,然后等待页面的其余部分加载,然后在文档中搜索“已知”的元素集(例如,任何CSS类为
示例:
注意如何
希望这有帮助。 |
![]() |
2
-1
在没有第三方库的情况下创建Javascript小部件的最佳方法是创建自定义元素。 以下链接: Custom Elements v1 是对这项技术的一个很好的介绍。 请参见下面的一个简单示例:
|
![]() |
mlsmet · 无法在Android手机上水平滚动表格 3 年前 |