在IE javascript调试器中为window.onload获取“未实现”

时间:2012-09-26 21:45:07

标签: javascript internet-explorer debugging

出于某种原因,IE不允许我从我的HTML页面调用函数。它在函数addEvent的调试器中显示“未实现”。我很茫然,非常感谢你的帮助。

以下是我的网页中的代码(位于'select'标记下方,其中包含选择语言的选项)

<script type="text/javascript">
window.onload = addEvent((document.getElementById('eng')), 'click', redirectEng);
window.onload = addEvent((document.getElementById('chs')), 'click', redirectChs);
window.onload = addEvent((document.getElementById('ger')), 'click', redirectGer);
</script>

1 个答案:

答案 0 :(得分:2)

我猜你真正想要的是这个:

window.onload = function() {
  addEvent((document.getElementById('eng')), 'click', redirectEng);
  addEvent((document.getElementById('chs')), 'click', redirectChs);
  addEvent((document.getElementById('ger')), 'click', redirectGer);
};

您的代码可能在FF下工作,但它仍然是一个非常糟糕的代码。你误解了概念。多次分配到.onload?无意义。 .onload也必须是一个功能。也许FF不会抛出错误(不像IE),但我仍然确信你的代码在没有window.onload的FF下工作。

在那种特殊情况下我不得不说(因为它不经常发生):这不是IE的错。 : - )

修改

显然,IE在window.onload方面存在一些问题。阅读此主题:

window.onload() is not firing with IE 8 in first shot

了解更多详情。对于跨浏览器兼容性,我建议您查看一些着名的JavaScript库,例如jQuery。使用jQuery,任务将如下:

$(function(){
    $( '#eng' ).click( redirectEng );
    $( '#chs' ).click( redirectChs );
    $( '#ger' ).click( redirectGet );
});