Javascript Window.onload和ordering

Javascript Window.onload和ordering,javascript,html,Javascript,Html,在下面的代码中,我似乎无法理解事件的顺序。当我在浏览器中加载它时,我会在第一个div呈现之前收到警报,.onclick事件侦听器无法找到要附加到的translate\u按钮元素。我认为,由于使用window.onload,我的脚本将在加载上述html后执行。这是否与html中的内联javascript有关 <div id='MicrosoftTranslatorWidget' class='Dark' id='translate_button'></div><scr

在下面的代码中,我似乎无法理解事件的顺序。当我在浏览器中加载它时,我会在第一个div呈现之前收到警报,.onclick事件侦听器无法找到要附加到的translate\u按钮元素。我认为,由于使用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>
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);
免责声明
window.onload=函数(){
var按钮=document.getElementById(“translate_按钮”);
button.onclick=警报(“lol”);
};

您正在分配函数执行。如果你想分配实际的函数,你需要

button.onclick = function() { alert("lol"); }

另一件事-您已经为DIV定义了两次ID。删除一个,然后使用剩下的一个。

我认为您关于“translate_button”不再存在的说法是正确的,但在运行Bing脚本(通过检查元素找到)后,使用html中存在的ID尝试后,仍然找不到它。请不要使用“translate_button”,使用“MicrosoftTranslatorWidget”——显然脚本需要它。这里有一个小演示:(您可能需要在小部件中单击[x])这似乎是可行的,但有没有办法解决需要单击两次小部件按钮才能触发它的问题?