2

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

这是我网页中的代码(在带有语言选择选项的“选择”标签下方)

<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>
4

1 回答 1

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 不同),但我仍然确信您的代码完全可以在 FF 下运行window.onload

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

编辑

显然 IE 有一些问题window.onload。阅读此线程:

window.onload() 在第一次使用 IE 8 时未触发

更多细节。为了跨浏览器的兼容性,我建议你看看一些著名的 JavaScript 库,比如jQuery。使用 jQuery,任务将非常简单:

$(function(){
    $( '#eng' ).click( redirectEng );
    $( '#chs' ).click( redirectChs );
    $( '#ger' ).click( redirectGet );
});
于 2012-09-26T22:13:10.160 回答