Hello.
This is a reference file from a book I read in which the core subject is the
use of 'event listeners'.
I'm trying to load the file in Firefox and it's giving me an error message:
Line: 5
Char: 1
Error: 'document' is undefined
Code: 800A1391
Source: Microsoft JScript Runtime Error
I need this file to work because it's the reference file for all of my coding.
Here's the contents of the file here.
var Core={};
// W3C DOM 2 Events model
if (document.addEv entListener)
{
Core.addEventLi stener = function(target , type, listener)
{
target.addEvent Listener (type, listener, false);
};
Core.removeEven tListener = function(target , type, listener)
{
target.removeEv entListener(typ e, listener, false);
};
Core.preventDef ault = function(event)
{
event.preventDe fault();
};
Core.stopPropag ation = function(event)
{
event.stopPropa gation();
};
}
// Internet Explorer Events model
else if (document.attac hEvent)
{
Core.addEventLi stener = function(target , type, listener)
{
// prevent adding the same listener twice, since DOM 2
// Events ignores duplicates like this
if (Core._findList ener(target, type, listener) != -1)
return;
// listener2 calls listener as a method of target in one of
// two ways, depending on what this version of IE supports,
// and passes it the global event object as an argument
var listener2 = function()
{
var event = window.event;
if (Function.proto type.call)
{
listener.call(t arget, event);
}
else
{
target._current Listener = listener;
target._current Listener(event)
target._current Listener = null;
}
};
// add listener2 using IE's attachEvent method
target.attachEv ent("on" + type, listener2);
// create an object describing this listener so we can
// clean it up later
var listenerRecord =
{
target: target,
type: type,
listener: listener,
listener2: listener2
};
// get a reference to the window object containing target
var targetDocument = target.document || target;
var targetWindow = targetDocument. parentWindow;
// create a unique ID for this listener
var listenerId = "1" + Core._listenerC ounter++;
// store a record of this listener in the window object
if (!targetWindow. _allListeners)
targetWindow._a llListeners = {};
targetWindow._a llListeners[listenerID] = listenerRecord;
// store this listener's ID in target
if (!target._liste ners) target._listene rs = [];
target._listene rs[target._listene rs.length] = listenerId;
// set up Core._removeAll Listeners to clean up all
// listeners on unload
if (!targetWindow. _unloadListener Added)
{
targetWindow._u nloadListenerAd ded = true;
targetWindow.at tachEvent(
"onunload", Core._removeAll Listeners);
}
};
Core.removeEven tListener = function(target , type, listener)
{
// find out if the listener was actually added to target
var listenerIndex = Core._findListe ner(
target, type, listener);
if (listenerIndex == -1) return;
// get a reference to the window object containing target
var targetDocument = target.document || target;
var targetWindow = targetDocument. parentWindow;
// obtain the record of the listener from the window object
var listenerId = target._listene rs[listenerIndex];
var listenerRecord =
targetWindow._a llListeners[listenerId];
// remove the listener, and remove its ID from target
target.detachEv ent("on" + type, listenerRecord. listener2);
target._listene rs.splice(liste nerIndex, 1);
// remove the record of the listener from the window object
delete targetWindow._a llListeners[listenerId];
};
Core.preventDef ault = function(event)
{
event.returnVal ue = false;
};
Core.stopPropag ation = function(event)
{
event.cancelBub ble = true;
};
Core._findListe ner = function(target , type, listener)
{
// get the array of listener IDs added to target
var listeners = target._listene rs;
if (!listeners) return -1;
// get a reference to the window object containing target
var targetDocument = target.document || target;
var targetWindow = targetDocument. parentWindow;
// searching backward (to speed up onunload processing),
// find the listener
for (var i = listeners.lengt h - 1; i >= 0; i--)
{
// get the listener's ID from target
var listenerId = listeners[i];
// get the record of the listener from the window object
var listenerRecord =
targetWindow._a llListeners[listenerId];
// compare type and listener with the retrieved record
if (listenerRecord .type == type &&
listenerRecord. listener == listener)
{
return i;
}
}
return -1;
};
Core._removeAll Listeners = function()
{
var targetWindow = this;
for (id in targetWindow._a llListeners)
{
var listenerRecord = targetWindow._a llListeners[id];
listenerRecord. target.detachEv ent(
"on" + listenerRecord. type, listenerRecord. listener2);
delete targetWindow._a llListeners[id];
}
};
Core._listenerC ounter = 0;
}
Core.addClass = function(target , theClass)
{
if (!Core.hasClass (target, theClass))
{
if (target.classNa me == " ")
{
target.classNam e = theClass;
}
else
{
target.classNam e += " " + theClass;
}
}
};
Core.getElement sByClass = function(theCla ss)
{
var elementArray = [];
if (typeof document.all != "undefined" )
{
elementArray = document.all;
}
else
{
elementArray = document.getEle mentsByTagName( "*");
}
var matchedArray = [];
var pattern = new RegExp("(^| )" + theClass + "( |$)");
for (var i = 0; i < elementArray.le ngth; i++)
{
if (pattern.test(e lementArray[i].className))
{
matchedArray[matchedArray.le ngth] = elementArray[i];
}
}
return matchedArray;
};
Core.hasClass = function(target , theClass)
{
var pattern = new RegExp("(^| )" + theClass + "( |$)");
if (pattern.test(t arget.className ))
{
return true;
}
return false;
};
Core.removeClas s = function(target , theClass)
{
var pattern = new RegExp("(^| )" + theClass + "( |$)");
target.classNam e = target.classNam e.replace(patte rn, "$1");
target.classNam e = target.classNam e.replace(/ $/, " ");
};
Core.getCompute dStyle = function(elemen t, styleProperty)
{
var computedStyle = null;
if (typeof element.current Style != "undefined" )
{
computedStyle = element.current Style;
}
else
{
computedStyle =
document.defaul tView.getComput edStyle(element , null);
}
return computedStyle[styleProperty];
};
Core.start = function(runnab le)
{
Core.addEventLi stener(window, "load", runnable.init);
};
--
Message posted via WebmasterKB.com
This is a reference file from a book I read in which the core subject is the
use of 'event listeners'.
I'm trying to load the file in Firefox and it's giving me an error message:
Line: 5
Char: 1
Error: 'document' is undefined
Code: 800A1391
Source: Microsoft JScript Runtime Error
I need this file to work because it's the reference file for all of my coding.
Here's the contents of the file here.
var Core={};
// W3C DOM 2 Events model
if (document.addEv entListener)
{
Core.addEventLi stener = function(target , type, listener)
{
target.addEvent Listener (type, listener, false);
};
Core.removeEven tListener = function(target , type, listener)
{
target.removeEv entListener(typ e, listener, false);
};
Core.preventDef ault = function(event)
{
event.preventDe fault();
};
Core.stopPropag ation = function(event)
{
event.stopPropa gation();
};
}
// Internet Explorer Events model
else if (document.attac hEvent)
{
Core.addEventLi stener = function(target , type, listener)
{
// prevent adding the same listener twice, since DOM 2
// Events ignores duplicates like this
if (Core._findList ener(target, type, listener) != -1)
return;
// listener2 calls listener as a method of target in one of
// two ways, depending on what this version of IE supports,
// and passes it the global event object as an argument
var listener2 = function()
{
var event = window.event;
if (Function.proto type.call)
{
listener.call(t arget, event);
}
else
{
target._current Listener = listener;
target._current Listener(event)
target._current Listener = null;
}
};
// add listener2 using IE's attachEvent method
target.attachEv ent("on" + type, listener2);
// create an object describing this listener so we can
// clean it up later
var listenerRecord =
{
target: target,
type: type,
listener: listener,
listener2: listener2
};
// get a reference to the window object containing target
var targetDocument = target.document || target;
var targetWindow = targetDocument. parentWindow;
// create a unique ID for this listener
var listenerId = "1" + Core._listenerC ounter++;
// store a record of this listener in the window object
if (!targetWindow. _allListeners)
targetWindow._a llListeners = {};
targetWindow._a llListeners[listenerID] = listenerRecord;
// store this listener's ID in target
if (!target._liste ners) target._listene rs = [];
target._listene rs[target._listene rs.length] = listenerId;
// set up Core._removeAll Listeners to clean up all
// listeners on unload
if (!targetWindow. _unloadListener Added)
{
targetWindow._u nloadListenerAd ded = true;
targetWindow.at tachEvent(
"onunload", Core._removeAll Listeners);
}
};
Core.removeEven tListener = function(target , type, listener)
{
// find out if the listener was actually added to target
var listenerIndex = Core._findListe ner(
target, type, listener);
if (listenerIndex == -1) return;
// get a reference to the window object containing target
var targetDocument = target.document || target;
var targetWindow = targetDocument. parentWindow;
// obtain the record of the listener from the window object
var listenerId = target._listene rs[listenerIndex];
var listenerRecord =
targetWindow._a llListeners[listenerId];
// remove the listener, and remove its ID from target
target.detachEv ent("on" + type, listenerRecord. listener2);
target._listene rs.splice(liste nerIndex, 1);
// remove the record of the listener from the window object
delete targetWindow._a llListeners[listenerId];
};
Core.preventDef ault = function(event)
{
event.returnVal ue = false;
};
Core.stopPropag ation = function(event)
{
event.cancelBub ble = true;
};
Core._findListe ner = function(target , type, listener)
{
// get the array of listener IDs added to target
var listeners = target._listene rs;
if (!listeners) return -1;
// get a reference to the window object containing target
var targetDocument = target.document || target;
var targetWindow = targetDocument. parentWindow;
// searching backward (to speed up onunload processing),
// find the listener
for (var i = listeners.lengt h - 1; i >= 0; i--)
{
// get the listener's ID from target
var listenerId = listeners[i];
// get the record of the listener from the window object
var listenerRecord =
targetWindow._a llListeners[listenerId];
// compare type and listener with the retrieved record
if (listenerRecord .type == type &&
listenerRecord. listener == listener)
{
return i;
}
}
return -1;
};
Core._removeAll Listeners = function()
{
var targetWindow = this;
for (id in targetWindow._a llListeners)
{
var listenerRecord = targetWindow._a llListeners[id];
listenerRecord. target.detachEv ent(
"on" + listenerRecord. type, listenerRecord. listener2);
delete targetWindow._a llListeners[id];
}
};
Core._listenerC ounter = 0;
}
Core.addClass = function(target , theClass)
{
if (!Core.hasClass (target, theClass))
{
if (target.classNa me == " ")
{
target.classNam e = theClass;
}
else
{
target.classNam e += " " + theClass;
}
}
};
Core.getElement sByClass = function(theCla ss)
{
var elementArray = [];
if (typeof document.all != "undefined" )
{
elementArray = document.all;
}
else
{
elementArray = document.getEle mentsByTagName( "*");
}
var matchedArray = [];
var pattern = new RegExp("(^| )" + theClass + "( |$)");
for (var i = 0; i < elementArray.le ngth; i++)
{
if (pattern.test(e lementArray[i].className))
{
matchedArray[matchedArray.le ngth] = elementArray[i];
}
}
return matchedArray;
};
Core.hasClass = function(target , theClass)
{
var pattern = new RegExp("(^| )" + theClass + "( |$)");
if (pattern.test(t arget.className ))
{
return true;
}
return false;
};
Core.removeClas s = function(target , theClass)
{
var pattern = new RegExp("(^| )" + theClass + "( |$)");
target.classNam e = target.classNam e.replace(patte rn, "$1");
target.classNam e = target.classNam e.replace(/ $/, " ");
};
Core.getCompute dStyle = function(elemen t, styleProperty)
{
var computedStyle = null;
if (typeof element.current Style != "undefined" )
{
computedStyle = element.current Style;
}
else
{
computedStyle =
document.defaul tView.getComput edStyle(element , null);
}
return computedStyle[styleProperty];
};
Core.start = function(runnab le)
{
Core.addEventLi stener(window, "load", runnable.init);
};
--
Message posted via WebmasterKB.com
Comment