创建兼容 IE/FireFox 的 event 及 event 的 srcElement、fromElement、toElement 属性
2013-01-31 10:28
423 查看
if(window.addEventListener) { FixPrototypeForGecko(); }
function FixPrototypeForGecko()
{
HTMLElement.prototype.__defineGetter__("runtimeStyle",element_prototype_get_runtimeStyle);
window.constructor.prototype.__defineGetter__("event",window_prototype_get_event);
Event.prototype.__defineGetter__("srcElement",event_prototype_get_srcElement);
Event.prototype.__defineGetter__("fromElement", element_prototype_get_fromElement);
Event.prototype.__defineGetter__("toElement", element_prototype_get_toElement);
}
function element_prototype_get_runtimeStyle() { return this.style; }
function window_prototype_get_event() { return SearchEvent(); }
function event_prototype_get_srcElement() { return this.target; }
function element_prototype_get_fromElement() {
var node;
if(this.type == "mouseover") node = this.relatedTarget;
else if (this.type == "mouseout") node = this.target;
if(!node) return;
while (node.nodeType != 1)
node = node.parentNode;
return node;
}
function element_prototype_get_toElement() {
var node;
if(this.type == "mouseout") node = this.relatedTarget;
else if (this.type == "mouseover") node = this.target;
if(!node) return;
while (node.nodeType != 1)
node = node.parentNode;
return node;
}
function SearchEvent()
{
if(document.all) return window.event;
func = SearchEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0 instanceof Event) {
return arg0;
}
func=func.caller;
}
return null;
}
function FixPrototypeForGecko()
{
HTMLElement.prototype.__defineGetter__("runtimeStyle",element_prototype_get_runtimeStyle);
window.constructor.prototype.__defineGetter__("event",window_prototype_get_event);
Event.prototype.__defineGetter__("srcElement",event_prototype_get_srcElement);
Event.prototype.__defineGetter__("fromElement", element_prototype_get_fromElement);
Event.prototype.__defineGetter__("toElement", element_prototype_get_toElement);
}
function element_prototype_get_runtimeStyle() { return this.style; }
function window_prototype_get_event() { return SearchEvent(); }
function event_prototype_get_srcElement() { return this.target; }
function element_prototype_get_fromElement() {
var node;
if(this.type == "mouseover") node = this.relatedTarget;
else if (this.type == "mouseout") node = this.target;
if(!node) return;
while (node.nodeType != 1)
node = node.parentNode;
return node;
}
function element_prototype_get_toElement() {
var node;
if(this.type == "mouseout") node = this.relatedTarget;
else if (this.type == "mouseover") node = this.target;
if(!node) return;
while (node.nodeType != 1)
node = node.parentNode;
return node;
}
function SearchEvent()
{
if(document.all) return window.event;
func = SearchEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0 instanceof Event) {
return arg0;
}
func=func.caller;
}
return null;
}
相关文章推荐
- 创建兼容 IE/FireFox 的 event 及 event 的 srcElement、fromElement、toElement 属性
- 创建兼容 IE/FireFox 的 event 及 event 的 srcElement、fromElement、toElement 属性
- 创建兼容 IE/FireFox 的 event 及 event 的 srcElement、fromElement、toElement 属性
- window.event.srcElement在Firefox IE下的兼容问题
- 大量Firefox和IE不兼容的javascript代码: runtimeStyle, event.srcElement
- IE、Firefox兼容form target当前页iframe,javascript动态创建表单对象form设置name属性
- IE firefox window.event.srcElement兼容
- 兼容IE,Firefox,CSS3 opacity透明度-FireFox 3.5+不支持-moz-opacity属性
- JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
- IE FireFox 兼容之 window.event
- 兼容ie和 firefox的event事件
- 兼容的IE、FireFox的event事件[收藏]
- 兼容IE,Firefox,CSS3 opacity透明度-FireFox 3.5+不支持-moz-opacity属性
- js 中 window.event 兼容 ie 与 firefox下
- IE和FireFox中JS兼容之event .
- event.srcElement在火狐下的兼容问题——ie用event.srcElement,火狐用event.target
- 兼容的IE、FireFox的event事件[收藏]
- IE的event.srcElement和Firefox的event.target
- 兼容ie和firefox的获取html元素自定义属性
- JS事件Event元素(兼容IE,Firefox,Chorme)