Javascript IE事件
这在Firefox中有效,但在IE中无效。任何帮助都将不胜感激!谢谢Javascript IE事件,javascript,internet-explorer,events,javascript-events,Javascript,Internet Explorer,Events,Javascript Events,这在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
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' )
}
如前所述,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' )
}
<>或者更好的是,使用一个跨浏览器库,如或./p>< p>这就是为什么你应该考虑使用JavaScript库比如jQuery、YUI或原型的原因。这些库提取了基于浏览器的差异,从而简化了编码。要在符合标准的浏览器和IE中获得事件目标,请使用
var target = evt ? evt.target : window.event.srcElement;
在MDC有一个测试。- 这个脚本什么时候运行?在DOM完全加载后,您可能必须在加载时运行此脚本
从我自己的搜索来看,最成功的是这个
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;
函数clickHandler(e){
var elem,evt=e?e:事件;
if(evt.srcement)elem=evt.srcement;
如果(evt.target)elem=evt.target,则为else;
警报(“”)
+'您单击了以下HTML元素:\n'
)
返回true;
}
document.onclick=clickHandler;
来源于非常有用和解释性的同样,您必须使用
.srcElement
而不是.target
在IES中,您应该使用结束语句代码>-隐式的代码结尾是一个回退机制,我会考虑使用它坏的做法(其他人可能不同意),我认为应该是:<代码> var目标= EVT目标?evt.target:window.event.src元素代码>
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;