在下面的代码中,我似乎无法理解事件的顺序。当我在浏览器中加载它时,我在第一个div渲染之前得到警报,而.onclick事件监听器找不到要附加的translate_button元素。我想因为使用了window.onload,我的脚本会在上面的html加载后执行。这是否与html中的内联javascript有关?
<div id='MicrosoftTranslatorWidget' class='Dark' id='translate_button'></div><script type='text/javascript'>setTimeout(function(){{var s=document.createElement('script');s.type='text/javascript';s.charset='UTF-8';s.src=((location && location.href && location.href.indexOf('https') == 0)?'https://ssl.microsofttranslator.com':'http://www.microsofttranslator.com')+'/ajax/v3/WidgetV3.ashx?siteData=ueOIGRSKkd965FeEGM5JtQ**&ctf=True&ui=true&settings=Manual&languages=es,pt,fr,it,tr,zh-CHS,zh-CHT,ru,de,en';var p=document.getElementsByTagName('head')[0]||document.documentElement;p.insertBefore(s,p.firstChild); }},0);</script>
<div class='disclaimer-link' id='disclaimer-link' style='display:none'>Disclaimer</div>
<script type="text/javascript">
window.onload = function () {
var button = document.getElementById("translate_button");
button.onclick = alert("lol");
};
</script>
答案 0 :(得分:1)
您正在分配功能执行。如果你想分配实际功能,你需要像
这样的东西button.onclick = function() { alert("lol"); }
另一件事 - 你为DIV定义了两次ID。删除一个并使用剩下的那个。