Forum Moderators: open
addLoadEvent(set_search_events);
function set_search_events() {
fname = getElem('fname');
fnameo = fname.value;
}
Note: addLoadEvent and getElem are a part of a lib.js [v2studio.com].
Sometimes when I open the page for the first time or do a hard refresh I get an error:
fname.value is null or not an object
If I do a soft refresh, then the error does not come up. I think this happens because HTML does not load fast enough, but JS has already loaded. And JS cannot find that part of the form. I get that error in both IE and FF.
What can I do to prevent that from happening?
function set_search_events() {
alert(getElem('fname'));
fname = getElem('fname');
fnameo = fname.value;
} And it alerts
[object].
Yes, it is an onload event. addLoadEvent is basically a cross browser window.onload function. Here is the code:
function addLoadEvent(fn) {
var w = getEventModel()=="DOM" &&!window.addEventListener? document : window;
return addEvent(w, 'load', fn, true)
}
function addEvent(els, ev, fn, capture) {
if (!ALLOW_LEGACY_EVENTS && getEventModel()=='legacy') return false;
if (undef(capture)) capture = true;
function DOM_addEvent (el, ev, fn, capture) { el.addEventListener(ev, fn, capture) }
function legacy_addEvent(el, ev, fn) {
var evn = 'on'+ev;
if (!el[evn] ¦¦ undef(el[evn].handlers)) {
el[evn] = function() {
map(el[evn].handlers, function(h){ h( new (el.attachEvent?IE_Event:Legacy_Event)(el) ) });
}
el[evn].handlers = [];
}
el[evn].handlers.push(fn);
}
var addEventFn = getEventModel()=='DOM'? DOM_addEvent : legacy_addEvent;
map(getElemList(els), function(el) { addEventFn(el, ev, fn, capture) });
}
See lib.js for more...