hankknight
asked on
Invalid Argument: document.getElementById(layer).style.left = x + "px";
Hello.
The following is giving me an error:
document.getElementById(la yer).style .left = x + "px";
The error is: Invalid Argument
Thanks!
--------------------------
// PHP Layers Menu 3.1.2 (C) 2001-2003 Marco Pratesi (marco at telug dot it)
layerLeft = new Array();
layerTop = new Array();
function setVisibility(layer,on) {
if (on) {
if (DOM) {
document.getElementById(la yer).style .visibilit y = "visible";
} else if (NS4) {
document.layers[layer].vis ibility = "show";
} else {
document.all[layer].style. visibility = "visible";
}
} else {
if (DOM) {
document.getElementById(la yer).style .visibilit y = "hidden";
} else if (NS4) {
document.layers[layer].vis ibility = "hide";
} else {
document.all[layer].style. visibility = "hidden";
}
}
}
function isVisible(layer) {
if (DOM) {
return (document.getElementById(l ayer).styl e.visibili ty == "visible");
} else if (NS4) {
return (document.layers[layer].vi sibility == "show");
} else {
return (document.all[layer].style .visibilit y == "visible");
}
}
function setLeft(layer,x) {
layerLeft[layer] = x;
if (DOM && !Opera5) {
////////////////////////// The error is in the one line below ////////////////////
document.getElementById(la yer).style .left = x + "px";
} else if (Opera5) {
document.getElementById(la yer).style .left = x;
} else if (NS4) {
document.layers[layer].lef t = x;
} else {
document.all[layer].style. pixelLeft = x;
}
}
function getOffsetLeft(layer) {
var value = 0;
if (DOM) { // Mozilla, Konqueror >= 2.2, Opera >= 5, IE
object = document.getElementById(la yer);
value = object.offsetLeft;
//alert (object.tagName + " --- " + object.offsetLeft);
while (object.tagName != "BODY" && object.offsetParent) {
object = object.offsetParent;
//alert (object.tagName + " --- " + object.offsetLeft);
value += object.offsetLeft;
}
} else if (NS4) {
value = document.layers[layer].pag eX;
} else { // IE4 IS SIMPLY A BASTARD !!!
if (document.all["IE4" + layer]) {
layer = "IE4" + layer;
}
object = document.all[layer];
value = object.offsetLeft;
while (object.tagName != "BODY") {
object = object.offsetParent;
value += object.offsetLeft;
}
}
return (value);
}
function setTop(layer,y) {
layerTop[layer] = y;
if (DOM && !Opera5) {
document.getElementById(la yer).style .top = y + "px";
} else if (Opera5) {
document.getElementById(la yer).style .top = y;
} else if (NS4) {
document.layers[layer].top = y;
} else {
document.all[layer].style. pixelTop = y;
}
}
function getOffsetTop(layer) {
// IE 5.5 and 6.0 behaviour with this function is really strange:
// in some cases, they return a really too large value...
// ... after all, IE is buggy, nothing new
var value = 0;
if (DOM) {
object = document.getElementById(la yer);
value = object.offsetTop;
while (object.tagName != "BODY" && object.offsetParent) {
object = object.offsetParent;
value += object.offsetTop;
}
} else if (NS4) {
value = document.layers[layer].pag eY;
} else { // IE4 IS SIMPLY A BASTARD !!!
if (document.all["IE4" + layer]) {
layer = "IE4" + layer;
}
object = document.all[layer];
value = object.offsetTop;
while (object.tagName != "BODY") {
object = object.offsetParent;
value += object.offsetTop;
}
}
return (value);
}
function setWidth(layer,w) {
if (DOM) {
document.getElementById(la yer).style .width = w;
} else if (NS4) {
// document.layers[layer].wid th = w;
} else {
document.all[layer].style. pixelWidth = w;
}
}
function getOffsetWidth(layer) {
var value = 0;
if (DOM && !Opera56) {
value = document.getElementById(la yer).offse tWidth;
} else if (NS4) {
value = document.layers[layer].doc ument.widt h;
} else if (Opera56) {
value = document.getElementById(la yer).style .pixelWidt h;
} else { // IE4 IS SIMPLY A BASTARD !!!
if (document.all["IE4" + layer]) {
layer = "IE4" + layer;
}
value = document.all[layer].offset Width;
}
return (value);
}
function setHeight(layer,h) { // unused, not tested
if (DOM) {
document.getElementById(la yer).style .height = h;
} else if (NS4) {
// document.layers[layer].hei ght = h;
} else {
document.all[layer].style. pixelHeigh t = h;
}
}
function getOffsetHeight(layer) {
var value = 0;
if (DOM && !Opera56) {
value = document.getElementById(la yer).offse tHeight;
} else if (NS4) {
value = document.layers[layer].doc ument.heig ht;
} else if (Opera56) {
value = document.getElementById(la yer).style .pixelHeig ht;
} else { // IE4 IS SIMPLY A BASTARD !!!
if (document.all["IE4" + layer]) {
layer = "IE4" + layer;
}
value = document.all[layer].offset Height;
}
return (value);
}
function getWindowWidth() {
var value = 0;
if ((DOM && !IE) || NS4 || Konqueror || Opera) {
value = top.innerWidth;
// } else if (NS4) {
// value = document.width;
} else { // IE
if (document.documentElement && document.documentElement.c lientWidth ) {
value = document.documentElement.c lientWidth ;
} else if (document.body) {
value = document.body.clientWidth;
}
}
if (isNaN(value)) {
value = top.innerWidth;
}
return (value);
}
function getWindowXOffset() {
var value = 0;
if ((DOM && !IE) || NS4 || Konqueror || Opera) {
value = window.pageXOffset;
} else { // IE
if (document.documentElement && document.documentElement.s crollLeft) {
value = document.documentElement.s crollLeft;
} else if (document.body) {
value = document.body.scrollLeft;
}
}
return (value);
}
function getWindowHeight() {
var value = 0;
if ((DOM && !IE) || NS4 || Konqueror || Opera) {
value = top.innerHeight;
} else { // IE
if (document.documentElement && document.documentElement.c lientHeigh t) {
value = document.documentElement.c lientHeigh t;
} else if (document.body) {
value = document.body.clientHeight ;
}
}
if (isNaN(value)) {
value = top.innerHeight;
}
return (value);
}
function getWindowYOffset() {
var value = 0;
if ((DOM && !IE) || NS4 || Konqueror || Opera) {
value = window.pageYOffset;
} else { // IE
if (document.documentElement && document.documentElement.s crollTop) {
value = document.documentElement.s crollTop;
} else if (document.body) {
value = document.body.scrollTop;
}
}
return (value);
}
The following is giving me an error:
document.getElementById(la
The error is: Invalid Argument
Thanks!
--------------------------
// PHP Layers Menu 3.1.2 (C) 2001-2003 Marco Pratesi (marco at telug dot it)
layerLeft = new Array();
layerTop = new Array();
function setVisibility(layer,on) {
if (on) {
if (DOM) {
document.getElementById(la
} else if (NS4) {
document.layers[layer].vis
} else {
document.all[layer].style.
}
} else {
if (DOM) {
document.getElementById(la
} else if (NS4) {
document.layers[layer].vis
} else {
document.all[layer].style.
}
}
}
function isVisible(layer) {
if (DOM) {
return (document.getElementById(l
} else if (NS4) {
return (document.layers[layer].vi
} else {
return (document.all[layer].style
}
}
function setLeft(layer,x) {
layerLeft[layer] = x;
if (DOM && !Opera5) {
//////////////////////////
document.getElementById(la
} else if (Opera5) {
document.getElementById(la
} else if (NS4) {
document.layers[layer].lef
} else {
document.all[layer].style.
}
}
function getOffsetLeft(layer) {
var value = 0;
if (DOM) { // Mozilla, Konqueror >= 2.2, Opera >= 5, IE
object = document.getElementById(la
value = object.offsetLeft;
//alert (object.tagName + " --- " + object.offsetLeft);
while (object.tagName != "BODY" && object.offsetParent) {
object = object.offsetParent;
//alert (object.tagName + " --- " + object.offsetLeft);
value += object.offsetLeft;
}
} else if (NS4) {
value = document.layers[layer].pag
} else { // IE4 IS SIMPLY A BASTARD !!!
if (document.all["IE4" + layer]) {
layer = "IE4" + layer;
}
object = document.all[layer];
value = object.offsetLeft;
while (object.tagName != "BODY") {
object = object.offsetParent;
value += object.offsetLeft;
}
}
return (value);
}
function setTop(layer,y) {
layerTop[layer] = y;
if (DOM && !Opera5) {
document.getElementById(la
} else if (Opera5) {
document.getElementById(la
} else if (NS4) {
document.layers[layer].top
} else {
document.all[layer].style.
}
}
function getOffsetTop(layer) {
// IE 5.5 and 6.0 behaviour with this function is really strange:
// in some cases, they return a really too large value...
// ... after all, IE is buggy, nothing new
var value = 0;
if (DOM) {
object = document.getElementById(la
value = object.offsetTop;
while (object.tagName != "BODY" && object.offsetParent) {
object = object.offsetParent;
value += object.offsetTop;
}
} else if (NS4) {
value = document.layers[layer].pag
} else { // IE4 IS SIMPLY A BASTARD !!!
if (document.all["IE4" + layer]) {
layer = "IE4" + layer;
}
object = document.all[layer];
value = object.offsetTop;
while (object.tagName != "BODY") {
object = object.offsetParent;
value += object.offsetTop;
}
}
return (value);
}
function setWidth(layer,w) {
if (DOM) {
document.getElementById(la
} else if (NS4) {
// document.layers[layer].wid
} else {
document.all[layer].style.
}
}
function getOffsetWidth(layer) {
var value = 0;
if (DOM && !Opera56) {
value = document.getElementById(la
} else if (NS4) {
value = document.layers[layer].doc
} else if (Opera56) {
value = document.getElementById(la
} else { // IE4 IS SIMPLY A BASTARD !!!
if (document.all["IE4" + layer]) {
layer = "IE4" + layer;
}
value = document.all[layer].offset
}
return (value);
}
function setHeight(layer,h) { // unused, not tested
if (DOM) {
document.getElementById(la
} else if (NS4) {
// document.layers[layer].hei
} else {
document.all[layer].style.
}
}
function getOffsetHeight(layer) {
var value = 0;
if (DOM && !Opera56) {
value = document.getElementById(la
} else if (NS4) {
value = document.layers[layer].doc
} else if (Opera56) {
value = document.getElementById(la
} else { // IE4 IS SIMPLY A BASTARD !!!
if (document.all["IE4" + layer]) {
layer = "IE4" + layer;
}
value = document.all[layer].offset
}
return (value);
}
function getWindowWidth() {
var value = 0;
if ((DOM && !IE) || NS4 || Konqueror || Opera) {
value = top.innerWidth;
// } else if (NS4) {
// value = document.width;
} else { // IE
if (document.documentElement && document.documentElement.c
value = document.documentElement.c
} else if (document.body) {
value = document.body.clientWidth;
}
}
if (isNaN(value)) {
value = top.innerWidth;
}
return (value);
}
function getWindowXOffset() {
var value = 0;
if ((DOM && !IE) || NS4 || Konqueror || Opera) {
value = window.pageXOffset;
} else { // IE
if (document.documentElement && document.documentElement.s
value = document.documentElement.s
} else if (document.body) {
value = document.body.scrollLeft;
}
}
return (value);
}
function getWindowHeight() {
var value = 0;
if ((DOM && !IE) || NS4 || Konqueror || Opera) {
value = top.innerHeight;
} else { // IE
if (document.documentElement && document.documentElement.c
value = document.documentElement.c
} else if (document.body) {
value = document.body.clientHeight
}
}
if (isNaN(value)) {
value = top.innerHeight;
}
return (value);
}
function getWindowYOffset() {
var value = 0;
if ((DOM && !IE) || NS4 || Konqueror || Opera) {
value = window.pageYOffset;
} else { // IE
if (document.documentElement && document.documentElement.s
value = document.documentElement.s
} else if (document.body) {
value = document.body.scrollTop;
}
}
return (value);
}
//was this what you had missed/left out ?
DOM = (document.getElementById) ? 1 : 0;
NS4 = (document.layers) ? 1 : 0;
Konqueror = (navigator.userAgent.index Of("Konque ror") > -1) ? 1 : 0;
Konqueror21 = (navigator.userAgent.index Of("Konque ror 2.1") > -1 || navigator.userAgent.indexO f("Konquer or/2.1") > -1) ? 1 : 0;
Konqueror22 = (navigator.userAgent.index Of("Konque ror 2.2") > -1 || navigator.userAgent.indexO f("Konquer or/2.2") > -1) ? 1 : 0;
Konqueror2 = Konqueror21 || Konqueror22;
Opera = (navigator.userAgent.index Of("Opera" ) > -1) ? 1 : 0;
Opera5 = (navigator.userAgent.index Of("Opera 5") > -1 || navigator.userAgent.indexO f("Opera/5 ") > -1) ? 1 : 0;
Opera6 = (navigator.userAgent.index Of("Opera 6") > -1 || navigator.userAgent.indexO f("Opera/6 ") > -1) ? 1 : 0;
Opera56 = Opera5 || Opera6;
IE = (document.all) ? 1 : 0;
IE4 = IE && !DOM;
DOM = (document.getElementById) ? 1 : 0;
NS4 = (document.layers) ? 1 : 0;
Konqueror = (navigator.userAgent.index
Konqueror21 = (navigator.userAgent.index
Konqueror22 = (navigator.userAgent.index
Konqueror2 = Konqueror21 || Konqueror22;
Opera = (navigator.userAgent.index
Opera5 = (navigator.userAgent.index
Opera6 = (navigator.userAgent.index
Opera56 = Opera5 || Opera6;
IE = (document.all) ? 1 : 0;
IE4 = IE && !DOM;
layer should be a string, representing an ID attribute of a htmlElement in your page.
For instance, with:
<div id="test">
test
</div>
you'd have to call the setLeft function like:
setLeft("test", 123);
Where did you get this script? because it contains code for IE4 and Netscape4, which is basically outdated. All modern browsers suppert the document.getElementById stuff etc.
For instance, with:
<div id="test">
test
</div>
you'd have to call the setLeft function like:
setLeft("test", 123);
Where did you get this script? because it contains code for IE4 and Netscape4, which is basically outdated. All modern browsers suppert the document.getElementById stuff etc.
ASKER
Thanks. I'd post the code, but there are five .js libraries, it is a HUGE project. Maybe it is time to look for something newer . . .
Anyway, it works, but it just gives the error.
Is there a way to "supress" JS errors, so the errort doesn't show up in the browser?
Anyway, it works, but it just gives the error.
Is there a way to "supress" JS errors, so the errort doesn't show up in the browser?
Yes,
try { document.getElementById(la
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
You have not shown where you are getting the browser version code . Thats why u r getting the error For DOM/Opera...
this.ver=navigator.appVers
this.agent=navigator.userA
this.dom=document.getEleme
this.opera5=this.agent.ind
this.ie5=(this.ver.indexOf
this.ie6=(this.ver.indexOf
this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
this.ie=this.ie4||this.ie5
this.mac=this.agent.indexO
this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.bw=(this.ie6||this.ie
return this
}