我在用 Jira 管理前端任务,每次改完任务状态(比如从“进行中”拖到“已完成”),页面不会自动刷新,得手动 F5 才能看到最新状态,这体验太差了。试过清缓存、换浏览器都不行。
是不是我页面里这段嵌入的 iframe 代码有问题?
<iframe
src="https://ourcompany.atlassian.net/jira/software/projects/FE/boards/123"
width="100%"
height="800"
frameborder="0">
</iframe>
解决这个问题,我们可以尝试在 iframe 中嵌入的页面上添加一些 JavaScript 代码,监听任务状态的变化,并触发页面的自动刷新。不过,由于 Jira 的页面是外部加载的,我们不能直接修改 Jira 的源代码。因此,我们可以尝试通过父页面来操作 iframe 内容。
具体步骤如下:
1. 在父页面中添加 JavaScript 代码,定期检查 iframe 中的任务状态是否发生变化。
2. 如果检测到变化,则强制刷新 iframe。
为了实现这个功能,我们需要在父页面的 JavaScript 中使用
setInterval来定期执行检查任务状态的函数。这里假设 iframe 中的任务状态可以通过某个 DOM 元素的属性或文本内容来判断。首先,在父页面中添加以下代码:
这段代码会每 10 秒检查一次 iframe 中的任务状态,如果发现状态发生变化,就会重新加载 iframe。
需要注意的是,这种方法依赖于 iframe 内部的任务状态元素 ID 或类名。如果这些 ID 或类名在不同的页面中有所不同,或者 Jira 的页面结构发生了变化,可能需要相应地调整代码。
另外,这种方法会频繁地重新加载 iframe,可能会增加服务器的负担,同时也会影响用户体验。如果 Jira 提供了 API 或者其他方式来监听任务状态的变化,可以考虑使用这些方式来优化解决方案。
最后,确保 iframe 的 id 是
jiraFrame,或者根据实际情况修改 JavaScript 代码中的 id 名称。希望这个方案能帮到你,如果有问题再问我。