如何使用javascript点击livechat时引发事件

时间:2015-11-25 03:36:34

标签: javascript jquery

每当用户点击我网站上的Livechat时,我就会捕获事件。 stackoverflower帮助我解决了Purechat上的问题,但解决方案不适用于Subiz(另一个Livechat)。

请参阅旧解决方案:How to raise event click on Purechat with jQuery

我的代码如下:

jQuery(document).ready(function () {
    jQuery(document).on("mousedown", ".sbzon", function (){        
        console.log("clicked on"); // do not work
    });

    jQuery(document).on("mousedown", ".sbzoff", function () {
        console.log("clicked sbzoff"); // do not work
    });

    jQuery(document).on("mousedown", "p", function () {
        console.log("clicked p"); // only this work
    });


});

请帮助我,这是问题的jsfiddle链接:

https://goo.gl/mpe0Mn

非常感谢,

1 个答案:

答案 0 :(得分:2)

Subiz Live Chat使用iframe来保存他们的widget dom元素。事件:在窗口小部件上单击...在iframe窗口上保留,而不是委托给父窗口(您的站点),因此您不能将事件绑定为:jQuery(document).on(' .sbzon' ,'点击',功能...),事件永远不会开火。

我有一个捕获事件的解决方案点击Subiz小部件,使用document.activeElement来跟踪父网站上的当前或iframe Subiz。 (可能对其他情况有用:)),见下文:



function visitorClickedOnSubizLiveChat() {
    alert('yes');
};

setInterval(function() {
    if (document.activeElement) {
         if (document.activeElement.id === 'sbzon_frame' || document.activeElement.id === 'sbzoff_frame') {
             visitorClickedOnSubizLiveChat();
         }

         window.focus();
         // or document.activeElement.blur();
    }
}, 600);




祝你好运!

更新链接测试:http://jsfiddle.net/tuanlongn/apvp2xvc/