javascript - 使用 Helmet 嵌入第三方聊天小部件
问题描述
我正在尝试在我的网站上嵌入一个tlk.io聊天小部件,Gatsby
因为似乎不存在类似的插件。我正在使用react-helmet
插件嵌入该脚本,但我的页面上没有显示任何内容。我的代码你可以在下面找到。
我认为这与脚本依赖data-channel
div 标签中的这个属性有关,但我不知道该怎么做。
import React from "react"
import Helmet from "react-helmet"
import Layout from "../components/layout"
import SEO from "../components/seo"
const LivePage = () => (
<Layout>
<SEO title="Live" />
<Helmet>
<div id="tlkio"
data-channel="hey"
style={{width:'auto',
height:400}}></div>
<script src="http://tlk.io/embed.js" type="text/javascript"></script>
</Helmet>
</Layout>
)
export default LivePage
解决方案
根据Gatsby 关于 Helmet 的文档,React Helmet <Helmet>
组件允许您插入一些代码,这些代码将在编译后放置在<head>
标签内。
因此,在您的代码中,您需要删除<div>
标签,它会像魅力一样工作。
import React from "react"
import Helmet from "react-helmet"
import Layout from "../components/layout"
import SEO from "../components/seo"
const LivePage = () => (
<Layout>
<SEO title="Live" />
<Helmet>
<script src="https://tlk.io/embed.js" type="text/javascript"/>
</Helmet>
</Layout>
)
export default LivePage
我已经在我的本地机器上进行了测试,它可以完美地工作,如下面的屏幕截图所示:
推荐阅读
- android - 迁移到 androidx 后膨胀类时出错
- python - numba 给出正确结果的否定,这是一个错误吗?
- generics - Kotlin 在从泛型类生成实例时提供类型
- android - Firebase 身份验证使用谷歌登录失败
- ios - 如何在 iOS 中设计这种带有左右动画的可交换卡片视图?
- r - 准备具有外部依赖项的 CRAN R 包 (nlopt)
- .htaccess - 在 htaccess 中结合重写条件
- ios - 通用链接 iOS:如果未安装应用程序,则打开商店链接
- c# - UWP - 无论大写还是小写字母都搜索gridview
- google-analytics - 在 Google Analytics(分析)/增强型电子商务中正确跟踪购物车事件