You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过脚本将Firebase托管的聊天机器人GUI悬浮嵌入第三方网站

实现Firebase聊天机器人悬浮在目标网站顶部的方案

我之前刚好做过类似的需求,给你一套现成的可行方案——只需要在目标网站的页面底部插入一段脚本,就能把你Firebase托管的聊天机器人变成悬浮窗口挂在网站上,完全不用修改机器人本身的代码。

核心思路

用iframe加载你的Firebase机器人网页,再通过CSS把这个iframe容器设置成固定悬浮的样式,额外加些基础交互(比如关闭按钮、拖动功能)提升用户体验。

完整实现代码

直接把这段代码复制到目标网站的</body>标签前即可:

// 创建悬浮容器
const chatBotContainer = document.createElement('div');
chatBotContainer.style.cssText = `
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 350px;
  height: 500px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  overflow: hidden;
  z-index: 9999;
  border: none;
  cursor: grab;
`;

// 创建iframe加载Firebase机器人页面
const chatBotIframe = document.createElement('iframe');
chatBotIframe.src = '你的Firebase机器人托管URL'; // 替换成你实际的托管地址
chatBotIframe.style.cssText = `
  width: 100%;
  height: 100%;
  border: none;
`;

// 添加关闭按钮(可选,不想加可以删掉这部分)
const closeBtn = document.createElement('button');
closeBtn.textContent = '×';
closeBtn.style.cssText = `
  position: absolute;
  top: 8px;
  right: 12px;
  background: rgba(0,0,0,0.2);
  color: white;
  border: none;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  cursor: pointer;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
`;
closeBtn.addEventListener('click', () => {
  chatBotContainer.style.display = 'none';
});

// 组装所有元素
chatBotContainer.appendChild(closeBtn);
chatBotContainer.appendChild(chatBotIframe);
document.body.appendChild(chatBotContainer);

// 可选:添加拖动功能(不想加可以删掉这部分)
let isDragging = false;
let startX, startY, initialX, initialY;

chatBotContainer.addEventListener('mousedown', (e) => {
  isDragging = true;
  startX = e.clientX;
  startY = e.clientY;
  initialX = chatBotContainer.offsetLeft;
  initialY = chatBotContainer.offsetTop;
  chatBotContainer.style.cursor = 'grabbing';
});

document.addEventListener('mousemove', (e) => {
  if (!isDragging) return;
  e.preventDefault();
  const dx = e.clientX - startX;
  const dy = e.clientY - startY;
  chatBotContainer.style.left = `${initialX + dx}px`;
  chatBotContainer.style.top = `${initialY + dy}px`;
  chatBotContainer.style.bottom = 'auto';
  chatBotContainer.style.right = 'auto';
});

document.addEventListener('mouseup', () => {
  isDragging = false;
  chatBotContainer.style.cursor = 'grab';
});

关键注意事项

  • 替换URL:一定要把代码里的你的Firebase机器人托管URL换成你实际的地址(比如https://your-chatbot.web.app)。
  • Firebase跨域设置:如果加载时出现iframe被浏览器阻止的情况,需要在Firebase托管的firebase.json里添加头信息,允许目标网站嵌入:
    {
      "hosting": {
        "headers": [
          {
            "source": "**",
            "headers": [
              {
                "key": "X-Frame-Options",
                "value": "ALLOW-FROM https://目标网站域名.com"
              }
            ]
          }
        ]
      }
    }
    
    测试阶段如果想允许所有网站嵌入,可把value改成ALLOWALL(正式环境不推荐这么做)。
  • 样式自定义:你可以修改容器的width、height、bottom、right等参数,调整悬浮窗口的大小和初始位置。

这样操作后,目标网站加载时就会自动显示悬浮的聊天机器人了,完全满足你“仅需添加一段脚本”的需求。

内容的提问来源于stack exchange,提问作者Martin1997

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 19:12:31