Javascript IE Event - PullRequest
       15

Javascript IE Event

7 голосов
/ 07 июня 2009

Это работает в Firefox, но не в IE. Любая помощь приветствуется! Спасибо!

  var form = document.getElementById('theform')
    /* create the event handler */
    form.gen.onclick = function( evt ) {
        var f = evt.target.form
        var y = f.year.value
        var m = f.month.value
        genCalendar( document, y, m, 'theCalendar' )
    }

Ответы [ 5 ]

15 голосов
/ 07 июня 2009

Чтобы получить цель события в браузерах, соответствующих стандартам, и в IE, используйте

var target = evt ? evt.target : window.event.srcElement;

В MDC представлен обзор различных свойств объектов событий .

1 голос
/ 07 июня 2009
  • Когда запускается этот скрипт? Возможно, вам придется запустить этот скрипт при загрузке после полной загрузки DOM
<script>

function go()
{
  alert('dom is loaded:  register event handlers now') ;
}

</script>

<body onload=" go(); ">



</body>

1 голос
/ 07 июня 2009

Как уже упоминалось, IE не передает объект события в качестве параметра. Попробуйте это:

var form = document.getElementById('theform')
  /* create the event handler */
  form.gen.onclick = function( evt ) {
    if(!evt)
      evt = window.event;
    var f = evt.target.form
    var y = f.year.value
    var m = f.month.value
    genCalendar( document, y, m, 'theCalendar' )
}

Или, что еще лучше, используйте кросс-браузерную библиотеку, например Prototype.js или jQuery .

0 голосов
/ 01 июля 2014

Из моих собственных поисков самым удачным оказался этот

function clickHandler(e){
 var elem, evt = e ? e:event;
 if (evt.srcElement)  elem = evt.srcElement;
 else if (evt.target) elem = evt.target;

 alert (''
  +'You clicked the following HTML element: \n <'
  +elem.tagName.toUpperCase()
  +'>'
 )
 return true;
}

document.onclick=clickHandler;

Получено из очень полезного и объяснительного http://www.javascripter.net/faq/eventtargetsrcelement.htm

0 голосов
/ 07 июня 2009

Вот почему вы должны рассмотреть возможность использования библиотеки javascript, такой как jquery, YUI или prototype. Эти библиотеки абстрагируют различия, основанные на браузере, что упрощает кодирование.

...