function getEvent(){ //同时兼容ie和ff的写法
// if(document.all)
if(navigator.appName == "Microsoft Internet Explorer") {
return window.event;
}
else{ // this is by e8sp.com
func=getEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0){
if((arg0.constructor==Event || arg0.constructor ==MouseEvent)
|| (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){
return arg0;
}
}
func=func.caller;
}
return null;
}
}上边的代码到底起什么作用呢?
// if(document.all)
if(navigator.appName == "Microsoft Internet Explorer") {
return window.event;
}
else{ // this is by e8sp.com
func=getEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0){
if((arg0.constructor==Event || arg0.constructor ==MouseEvent)
|| (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){
return arg0;
}
}
func=func.caller;
}
return null;
}
}上边的代码到底起什么作用呢?
解决方案 »
- 走投无路,请各位帮忙看一下代码哪里出了问题
- [求教:JS控制table中td隐藏显示问题]
- 怎样去掉字符串里重复的
- 如何用appendChild结合createElement(str)动态生成【多个】元素?
- 小问题
- 请问屏幕保护的问题!!!!!!万万火急
- 一个Form表单提交的问题
- 确定窗口的疑问
- 高分求救:能得到浏览器里的IFrame 里的window object 吗,也就是说,写程序将浏览器里的一个Iframe 里的内容给打印出来,而不打印页面里别的东西?
- window.onbeforeunload 调用问题
- innerText
- 如何在一个js中调用另一个js,以及载入多个有依赖关系的js
//当属性rel值为"rel"时为mouseover事件,其它为click事件
//兼容firefox
try
{
HTMLElement.prototype.__defineGetter__("children",
function () {
var returnValue = new Object();
var number = 0;
for (var i=0; i<this.childNodes.length; i++) {
if (this.childNodes[i].nodeType == 1) {
returnValue[number] = this.childNodes[i];
number++;
}
}
returnValue.length = number;
return returnValue;
}
);
}
catch(e){}
function getEvent(){ //同时兼容ie和ff的写法
// if(document.all)
if(navigator.appName == "Microsoft Internet Explorer") {
return window.event;
}
else{ // this is by e8sp.com
func=getEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0){
if((arg0.constructor==Event || arg0.constructor ==MouseEvent)
|| (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){
return arg0;
}
}
func=func.caller;
}
return null;
}
}var value=[];
function getrunelement(obj)
{
try
{
if(obj.children.length>0)
{
for(var i=0;i<obj.children.length;i++)
{
var o=obj.children[i];
if(o.getAttribute("rel")!=null&&o.getAttribute("rel")!="")
{
value[value.length]=o;
}
getrunelement(o);
}
}
}
catch(e){}
}
function RunEventFunction()
{
{
var event=arguments[0]||window.event;
var obj=event.srcElement||event.target;
if(obj.getAttribute("rev")!=null&&obj.getAttribute("rev")!="")
{
try
{
eval(OperatorObject+"."+obj.getAttribute("rev")+"()");
}
catch(e)
{
try
{
eval(obj.getAttribute("rev"))();
}
catch (e)
{
}
}
}
else
{
runAjax(obj.getAttribute("rel"));
}
}
}
//加载所有事件
function LoadAllEvent()
{
var elements=getRunElement();
var obj=null;
for(var i=0;i<elements.length;i++)
{
obj=elements[i];
if(obj.tagName!="LINK")
{
if(obj.getAttribute("rel")!="rel")
{
if (window.attachEvent)
{
obj.attachEvent("onclick",RunEventFunction);
}
if (window.addEventListener)
{
obj.addEventListener("click",RunEventFunction,false);
}
}
else
{
if (window.attachEvent)
{
obj.attachEvent("onmouseover",RunEventFunction);
}
if (window.addEventListener)
{
obj.addEventListener("mouseover",RunEventFunction,false);
}
}
}
}
}
//去除所有事件
function DeleteAllEvent()
{
var elements=getRunElement();
var obj=null;
for(var i=0;i<elements.length;i++)
{
obj=elements[i];
if(obj.tagName!="LINK")
{
if(obj.getAttribute("rel")!="rel")
{
if (window.attachEvent)
{
obj.detachEvent("onclick",RunEventFunction);
}
if (window.addEventListener)
{
obj.removeEventListener("click",RunEventFunction,false);
}
}
else
{
if (window.attachEvent)
{
obj.detachEvent("onmouseover",RunEventFunction);
}
if (window.addEventListener)
{
obj.removeEventListener("mouseover",RunEventFunction,false);
}
}
}
}
}
//取得页面所有有事件的对象
function getRunElement()
{
value=[];
getrunelement(document.getElementsByTagName("body")[0]);
return value;
}
//运行ajax
function runAjax(url)
{
var options={
method:'get',
parameters:"",
onComplete:
function(transport)
{
var returnvalue=transport.responseText;
eval(returnvalue);
}
}
new Ajax.Request(url,options);
}var eventLoaded=false;if(!eventLoaded)
{
if (window.attachEvent)
{
window.attachEvent("onload",LoadAllEvent);
}
if (window.addEventListener)
{
window.addEventListener("load",LoadAllEvent,false);
}
eventLoaded=true;
}EventLoad={};
//重新加载事件
EventLoad.Reload=function()
{
DeleteAllEvent();
LoadAllEvent();
}为什么 在IE 下提示 没有定义 LoadAllEvent