点击加载后使用其API的外部Javascript

时间:2017-04-18 18:14:39

标签: javascript

所以一直在寻找一个有Windows应用程序的好聊天程序。找到Twak我非常大的应用程序,所以我想加载它只有当有人真的想和我聊天时。

问题是,一旦您点击我的聊天按钮,聊天框就处于最小化状态。我希望小部件一旦加载就最大化。他们有一个api来最大化

Tawk_API.onLoad = function(){
    Tawk_API.maximize();
};

不幸的是,这仅在程序完全加载时才有效。

我尝试了一个查找类的计时器函数,但是他们在每个加载类上更改了类名称" KSKLwOL-1492537819846"

希望可能有另一种方法可以知道程序何时加载然后最大化。

$('.chat').on('click', function (e) {
    $('.chat').hide();
    var Tawk_API = Tawk_API || {},
        Tawk_LoadStart = new Date();
    (function () {
        var s1 = document.createElement("script"),
            s0 = document.getElementsByTagName("script")[0];
        s1.async = true;
        s1.src = 'https://embed.tawk.to/58f11df330ab263079b5fde1/default';
        s1.charset = 'UTF-8';
        s1.setAttribute('crossorigin', '*');
        s0.parentNode.insertBefore(s1, s0);
        document.body.appendChild(s0);
    })();
}); 

如果您想查看我的意思,聊天程序会加载到我的site上。

谢谢,任何人

2 个答案:

答案 0 :(得分:2)

一种方法是使用

加载API和hide小部件作为默认值
Tawk_API.onLoad = function(){
  Tawk_API.hideWidget();
};

并点击按钮

$('.chat').on('click', function (e) {
$('.chat').hide();
Tawk_API.showWidget();

更新

您目前正在Tawk点击加载chat button API。我建议你应该在Tawk推荐的页面上加载它。将您的脚本放在</body>标记之前。

这将为您省去计时器或等待加载API的麻烦。结果,当DOM准备就绪(完全加载)时,您将拥有Tawk api对象

HTML

<body>
    <! -- move your code given by Tawk here -->
</body>

的Javascript

$(document).ready(function(){
    if (Tawk_API) {
     Tawk_API.onLoad = function() {
       Tawk_API.hideWidget();
     };
     $('.chat-button').on('click', function(){
       $('.chat-button').hide();
       Tawk_API.showWidget();
       Tawk_API.maximize();
     });
    }
 });

但是,如果这是不可理解的,这是我想说的代码示范。 Check this link

答案 1 :(得分:0)

这将确保小部件在加载时最小化,注意 setTimeout 对实现这一点很重要。坚持使用 API 总是好的。

<script type="text/javascript">
  var Tawk_API = Tawk_API || {};
  var s1 = document.createElement("script"),
    s0 = document.getElementsByTagName("script")[0];
    s1.async = true;
    s1.src = 'https://embed.tawk.to/5b161b708859f57bdc7bd84d/default';
    s1.charset = 'UTF-8';
    s1.setAttribute('crossorigin', '*');
    s0.parentNode.insertBefore(s1, s0);

//here's all you need
Tawk_API.onLoad = function() {
setTimeout(function() {
      Tawk_API.minimize();
    }, 1);
};
</script>