我已经创建了这个以证明我的问题。
https://jsfiddle.net/nwo2oxqc/
基本上,我试图在打开弹出窗口的div上使用querySelector,以便我可以检测它何时被点击。
但是,显示错误:
Uncaught TypeError: Cannot read property 'addEventListener' of null
因此出于某种原因,querySelector无法找到该元素。
这是因为mylivechat js脚本还没有完全加载吗?有没有什么我需要做的,等到脚本加载?
答案 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>