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

React集成Jira Service Management嵌入组件:内联显示等需求咨询

Jira Service Management嵌入组件:默认打开、内联渲染及禁用浮动按钮的实现方案

官方支持的配置方案

针对你的三个需求,JSM嵌入组件提供了官方原生的data属性配置,无需依赖CSS覆盖或复杂的动态加载逻辑:

1. 默认打开组件

给嵌入脚本添加data-auto-open="true"属性,组件加载后会自动展开:

<script
  data-jsd-embedded
  data-key="xxxxxxxxxxxxxxxxxxxxx"
  data-base-url="https://jsd-widget.atlassian.com"
  data-auto-open="true"
  src="https://jsd-widget.atlassian.com/assets/embed.js">
</script>

2. 内联渲染组件

官方支持内联渲染模式,需要先在页面中定义一个容器元素,再通过脚本属性指定渲染目标:

<!-- 页面中添加内联容器,可通过CSS调整位置(如居中、卡片下方) -->
<div id="jsd-inline-container" style="margin: 20px auto; max-width: 600px;"></div>

<!-- 配置内联渲染的脚本 -->
<script
  data-jsd-embedded
  data-key="xxxxxxxxxxxxxxxxxxxxx"
  data-base-url="https://jsd-widget.atlassian.com"
  data-inline="true"
  data-container-selector="#jsd-inline-container"
  src="https://jsd-widget.atlassian.com/assets/embed.js">
</script>

3. 禁用浮动启动按钮

  • 当启用内联模式(data-inline="true")时,浮动按钮会自动隐藏;
  • 非内联模式下,可添加data-hide-trigger="true"属性强制禁用:
<script
  data-jsd-embedded
  data-key="xxxxxxxxxxxxxxxxxxxxx"
  data-base-url="https://jsd-widget.atlassian.com"
  data-hide-trigger="true"
  src="https://jsd-widget.atlassian.com/assets/embed.js">
</script>

React中动态加载的正确写法

如果需要在React中动态渲染,需确保脚本的所有data属性都设置完成后再加载src,避免属性未生效:

import { useEffect } from 'react';

const JsmInlineEmbed = () => {
  useEffect(() => {
    const script = document.createElement('script');
    // 配置所有必要属性
    script.dataset.jsdEmbedded = '';
    script.dataset.key = 'xxxxxxxxxxxxxxxxxxxxx';
    script.dataset.baseUrl = 'https://jsd-widget.atlassian.com';
    script.dataset.inline = 'true';
    script.dataset.containerSelector = '#jsd-inline-container';
    script.dataset.autoOpen = 'true';
    
    script.src = 'https://jsd-widget.atlassian.com/assets/embed.js';
    const container = document.getElementById('jsd-inline-container');
    container?.appendChild(script);

    // 组件卸载时清理脚本
    return () => script.remove();
  }, []);

  return <div id="jsd-inline-container" className="your-custom-styles" />;
};

export default JsmInlineEmbed;

替代方案(若官方嵌入不满足需求)

如果官方内联模式仍无法适配你的场景,可考虑以下两种方案:

  • 自定义表单 + JSM REST API:完全自主构建表单UI,通过JSM的REST API提交服务请求,实现100%的样式和交互控制,适合高度定制化需求;
  • iframe直接嵌入表单:在JSM后台生成表单的嵌入链接,将其放在页面的iframe标签中,通过CSS控制iframe的位置、尺寸,这种方式轻量化且无需复杂逻辑,定制性略弱但实现简单。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 15:03:23