mylivechat点击甚至javascript

时间:2016-06-30 10:58:54

标签: javascript events click addeventlistener

我已经创建了这个以证明我的问题。

https://jsfiddle.net/nwo2oxqc/

基本上,我试图在打开弹出窗口的div上使用querySelector,以便我可以检测它何时被点击。

但是,显示错误:

Uncaught TypeError: Cannot read property 'addEventListener' of null

因此出于某种原因,querySelector无法找到该元素。

这是因为mylivechat js脚本还没有完全加载吗?有没有什么我需要做的,等到脚本加载?

2 个答案:

答案 0 :(得分:0)

必须在dom满载时添加eventListener,否则,添加侦听器时对象将不存在。为此,您必须将函数封装到子句中:

$(document).ready(function(){ });

div的类名也是“mylivechat_collapsed_text”,而不是“mylivechat_collapsed”。如果要捕获箭头上的单击,则必须为类添加“mylivechat_sprite”的div添加相同的侦听器

这个小提琴的解决方案: FIDDLE

答案 1 :(得分:0)

放入window.load函数似乎可以解决问题,所以它会一直等到页面加载完毕,然后运行脚本:

    <script>
     window.onload = function () { 
        var myl = document.querySelector('div.mylivechat_collapsed');
        myl.addEventListener('click', function() {
            _gaq.push(['_trackEvent', 'contact', 'livechat', ClientID ]);
        });
        function MyLiveChat_OnInit() {
            MyLiveChat_SetProductName(ClientID);
        }
    }
    </script>