每当用户点击我网站上的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
非常感谢,
答案 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);

祝你好运!