Slack频道注册按钮不显示加载ajax页面内容时

Slack channel signup button not showing when loaded with ajaxed page content

本文关键字:ajax 加载 注册 频道 按钮 显示 Slack      更新时间:2023-09-26

我正在添加一些内容到页面中。中间一列包含基于特定类的内容。当他们点击类的按钮时会有很多东西进来。松弛通道按钮是属于该页面的支持框的一部分。与此同时,还有一个注册到slack频道的按钮。

在html中是这样的,这个block进入到正在加载的页面

<div class="support box">
  <span class="title">Support</span>
  <p>
    Are you haveing trouble? Visit our workshop FAQ page or send us an email and we'll get back to you as soon as possible.
    <br />
    <br />
    <a href="/faq" class="changeColor">Frequently Asked Questions</a>
    <br />
    <a href="mailto:....com" class="changeColor">...url....com</a>
  </p>
  <p>Join the conversation on slack</p>
  <div id="slackin-div">
    <script src="https://...url....com/slackin.js?large"></script> 
  </div>
</div>

当页面初始加载时,按钮显示良好。如果我查看的页面正在ajax在它自己的url按钮显示很好。但是,一旦我ajax按钮中的内容不显示。我发现一些帖子使用了eval()"但我认为这是没有帮助这里,因为我所做的就是添加这个脚本标签,而不是实际运行任何js从一个函数在我的页面上的文件,所以我不认为有什么要评估。

有谁知道有什么方法可以在页面被插入后保持这个按钮显示吗?我确实尝试将它附加到一个div,但按钮仍然不会显示

您需要确保脚本标记不是作为字符串"ajax"插入,而是作为DOM可以理解的元素。您可以使用纯Javascript来实现这一点(createElement())。下面是一个模拟AJAX请求的超时示例。这使得与jQuery的append()一起工作,因为它也将其作为字符串插入。

const slackin = 'http://slack.yourdomain.com/slackin.js';
// Create script element.
let script = document.createElement('script');
    script.src = slackin;
// Insert the element in a target element.
document.querySelector('#target').appendChild(script);