Avatar billede gecko Nybegynder
29. maj 2003 - 11:56 Der er 9 kommentarer og
1 løsning

Hvad er fejlen her:

Hejsa
Jeg har "lånt" et meget langt script til en dropdown-menu.
nu har jeg selvfølgelig rettet så meget i den, at den kommer med en fejlmeddelse

Jeg mener jeg er kommet så langt, at det er nedenstående stykke kode, som giver fejlen.

function popClick(evt) { with (this)
{
if (overI)
{
if (this.onclick) this.onclick();
var thisI = menu[overM][overI];
var redirectUrl;
if(content.location.href.indexOf('test') > 0){
redirectUrl = 'test' + thisI.filename;
}else{
redirectUrl = 'test' + thisI.filename;
}
if (thisI.filename) content.location.href = redirectUrl;
with (thisI) switch (type)
{
case 'sm:': return;
case 'js:': { eval(href); break }
case '': type = 'content';
default: if (href) eval(type + '.location.href = "' + redirectUrl + '"');
}
}
over('root', 0);
}}


jeg har nu prøvet at finde fejlen i 2 timer, men må opgive.
Er der nogle, som kan hjælpe?

Jeg vil også meget gerne have koden kortet ned, så der ikke er det "redirect"

Ved debug i dreamweaver kommer denne meddelelse: Error 1028 expected identifier
An identifer was expected.
Avatar billede Slettet bruger
29. maj 2003 - 12:00 #1
Der ser ikke umiddelbart ud til at være fejl i den del af koden. Men smid et link, for fejlen opstår formentlig pga. forkert overførte parametre, e.l.
Avatar billede gecko Nybegynder
29. maj 2003 - 12:06 #2
Jeg kan desværre ikke smide et link, er der nogle alternativer??
Avatar billede Slettet bruger
29. maj 2003 - 12:56 #3
Næ, bortset fra at smide hele koden (og det kommer formentlig til at fylde en hel del).
Avatar billede gecko Nybegynder
29. maj 2003 - 12:58 #4
Hmm, det må jeg jo gøre så ... jeg har ik andre valgmuligheder:

var isDOM = document.getElementById?1:0;
var isIE = document.all?1:0;
var isNS4 = (navigator.appName=='Netscape' && !isDOM)?1:0;
var isIE4 = (isIE && !isDOM)?1:0;
var isDyn = (isDOM||isIE||isNS4);
//##############################################################//
function getRef(id, par)
{
par = !par ? document : (par.navigator?par.document:par);
return (isIE ? par.all[id] :
(isDOM ? (par.getElementById?par:par.ownerDocument).getElementById(id) :
par.layers[id]));
}
//##############################################################//
function getSty(id, par)
{
return (isNS4 ? getRef(id, par) : getRef(id, par).style)
}
if (!window.LayerObj)
var LayerObj = new Function('id', 'par', 'this.ref=getRef(id, par); this.sty=getSty(id, par); return this');
//##############################################################//
function getLyr(id, par) { return new LayerObj(id, par) }
//##############################################################//
function LyrFn(fn, fc)
{
LayerObj.prototype[fn] = new Function('var a=arguments,p=a[0]; with (this) { '+fc+' }');
}
LyrFn('x','if (!isNaN(p)) sty.left=p; else return parseInt(sty.left)');
LyrFn('y','if (!isNaN(p)) sty.top=p; else return parseInt(sty.top)');
LyrFn('vis','sty.visibility=p');
LyrFn('bgColor','if (isNS4) sty.bgColor=(p?p:null); ' + 'else sty.background=p?p:"transparent"');
LyrFn('bgImage','if (isNS4) sty.background.src=(p?p:null); ' +  'else sty.background=(p?"url("+p+")":"") ');
LyrFn('clip','if (isNS4) with(sty.clip) { left=a[0]; top=a[1]; right=a[2]; bottom=a[3] } ' + 'else sty.clip="rect("+a[1]+"px "+a[2]+"px "+a[3]+"px "+a[0]+"px)" ');
LyrFn('write','if (isNS4) with (ref.document) {write(p);close()} else ref.innerHTML=p');
LyrFn('alpha','var f=ref.filters; if (f) {' + 'if (sty.filter.indexOf("alpha")==-1) sty.filter+="alpha()"; ' + 'if (f.length&&f.alpha) f.alpha.opacity=p } else if (isDOM) sty.MozOpacity=(p/100)');
//##############################################################//
function setLyr(lVis, docW, par)
{
if (!setLyr.seq) setLyr.seq=0;
if (!docW) docW=0;
var obj = (!par ? (isNS4 ? window : document.body) : (!isNS4 && par.navigator ? par.document.body : par));
var newID='_js_layer_'+setLyr.seq++;
if (isIE&&!window.opera) obj.insertAdjacentHTML('beforeEnd', '<div id="'+newID+ '" style="position:absolute"></div>');
else if (isDOM)
{
var newL=document.createElement('div');
obj.appendChild(newL);
newL.id=newID; newL.style.position='absolute';
}
else if (isNS4)
{
var newL=new Layer(docW, obj);
newID=newL.id;
}
var lObj=getLyr(newID, par);
with (lObj.sty) { visibility=lVis; left=0; top=0; width=docW }
return lObj;
}
if (!window.page) var page = { win: window, minW: 760, minH: 0, MS: isIE&&!window.opera }
page.winW=function()
{ with (this) return Math.max(minW, MS?win.document.body.clientWidth:win.innerWidth) }
page.winH=function()
{ with (this) return Math.max(minH, MS?win.document.body.clientHeight:win.innerHeight) }
page.scrollX=function()
{ with (this) return MS?win.document.body.scrollLeft:win.pageXOffset }
page.scrollY=function()
{ with (this) return MS?win.document.body.scrollTop:win.pageYOffset }
//##############################################################//
function popOver(mN, iN) { with (this)
{
clearTimeout(hideTimer);
overM = mN;
overI = iN;
var thisI = menu[mN][iN];
if (iN && this.onmouseover) this.onmouseover();
litOld = litNow;
litNow = new Array();
var litM = mN, litI = iN;
while(1)
{
litNow[litM] = litI;
if (litM == 'root') break;
litI = menu[litM][0].parentItem;
litM = menu[litM][0].parentMenu;
}
var same = true;
for (var z in menu) if (litNow[z] != litOld[z]) same = false;
if (same) return;
for (thisM in menu) with (menu[thisM][0])
{
if (!lyr) continue;
litI = litNow[thisM];
oldI = litOld[thisM];
if (litI && (litI != oldI)) changeCol(thisM, litI, true);
if (oldI && (oldI != litI)) changeCol(thisM, oldI, false);
if (litI && !visNow && (thisM != 'root'))
{
showMenu(thisM);
visNow = true;
}
if (isNaN(litI) && visNow)
{
hideMenu(thisM);
visNow = false;
}
}
clearTimeout(showTimer);
nextMenu = '';
if (thisI.type == 'sm:')
{
var targ = thisI.href, lyrM = menu[mN][0].lyr;
with (menu[targ][0])
{
if (!lyr || !lyr.ref) return;
lyr.x(eval(offX) + (typeof(offX)=='number' ? lyrM.x() + thisI.lyr.x() : 0));
lyr.y(eval(offY) + (typeof(offY)=='number' ? lyrM.y() + thisI.lyr.y() : 0));
showStr = myName + '.showMenu("' + targ + '"); ' +
myName + '.menu.' + targ + '[0].visNow = true';
nextMenu = targ;
if (showDelay) showTimer = setTimeout(showStr, showDelay);
else eval(showStr);
}
}
}}
//##############################################################//
function popChangeCol(mN, iN, isOver) { with (this.menu[mN][iN])
{
var col = isOver ? overCol : outCol;
if (col.indexOf('.') == -1) lyr.bgColor(col);
else lyr.bgImage(col);
var doFX = ((overClass != outClass) || (outBorder != overBorder));
if (doFX && isNS4) lyr.write(this.getHTML(mN, iN, isOver));
else if (doFX) with (lyr)
{
ref.className = (isOver ? overBorder : outBorder);
var chl = (isDOM ? ref.childNodes : ref.children)
if (chl) for (var i = 0; i < chl.length; i++)
chl[i].className = (isOver ? overClass : outClass);
}
if (typeof(outAlpha)=='number') lyr.alpha(isOver ? overAlpha : outAlpha);
}}
//##############################################################//
function popOut(mN, iN) { with (this)
{
if ((mN != overM) || (iN != overI)) return;
if (this.onmouseout) this.onmouseout();
var thisI = menu[mN][iN];
if (thisI.href != nextMenu) clearTimeout(showTimer);
if (hideDelay)
{
var delay = ((mN == 'root') && (thisI.type != 'sm:')) ? 50 : hideDelay;
hideTimer = setTimeout(myName + '.over("root", 0)', delay);
}
overM = 'root';
overI = 0;
}}
//##############################################################//
function popClick(evt) { with (this)
{
if (overI)
{
if (this.onclick) this.onclick();
var thisI = menu[overM][overI];
var redirectUrl;
if(content.location.href.indexOf('test') > 0){
redirectUrl = 'test' + thisI.filename;
}else{
redirectUrl = 'test' + thisI.filename;
}
if (thisI.filename) content.location.href = redirectUrl;
with (thisI) switch (type)
{
case 'sm:': return;
case 'js:': { eval(href); break }
case '': type = 'content';
default: if (href) eval(type + '.location.href = "' + redirectUrl + '"');
}
}
over('root', 0);
}}
//##############################################################//
function popClearLyr(wN) { with (this)
{
for (mN in menu) with (menu[mN][0]) if (par == wN) lyr = null;
}}
//##############################################################//
function addProps(obj, data, names, addNull)
{
for (var i = 0; i < names.length; i++) if(i < data.length || addNull) obj[names[i]] = data[i];
}
//##############################################################//
function ItemStyle()
{
var names = ['len', 'spacing', 'popInd', 'popPos', 'pad', 'outCol', 'overCol', 'outClass',
'overClass', 'outBorder', 'overBorder', 'outAlpha', 'overAlpha'];
addProps(this, arguments, names, true);
}
//##############################################################//
function popStartMenu(mName) { with (this)
{
if (!menu[mName]) { menu[mName] = new Array(); menu[mName][0] = new Object(); }
actMenu = mName;
menu[mName].length = 1;
nextItem = 1;
var aM = menu[mName][0];
var names = ['isVert', 'isVert', 'offX','offY', 'width', 'itemSty', 'par', 'parentMenu',
'parentItem', 'visNow', 'menuW', 'menuH'];
addProps(aM, arguments, names, true);
if (!aM.lyr) aM.lyr = null;
}}
//##############################################################//
function popAddItem() { with (this)
{
var aI = menu[actMenu][nextItem++] = new Object();
var names = ['text', 'href', 'type', 'filename', 'itemSty', 'len', 'spacing', 'popInd', 'popPos',
'pad', 'outCol', 'overCol', 'outClass', 'overClass', 'outBorder', 'overBorder',
'outAlpha', 'overAlpha', 'iW', 'iH', 'lyr'];
addProps(aI, arguments, names, true);
var iSty = (arguments[4] ? arguments[4] : menu[actMenu][0].itemSty);
for (prop in iSty) if (aI[prop] == window.UnDeFiNeD) aI[prop] = iSty[prop];
if (aI.outBorder)
{
if (isNS4) aI.pad++;
}
}}
//##############################################################//
function popGetHTML(mN, iN, isOver) { with (this)
{
var itemStr = '';
with (menu[mN][iN])
{
var textClass = (isOver ? overClass : outClass);
if ((type == 'sm:') && popInd)
{
if (isNS4) itemStr += '<layer class="' + textClass + '" left="'+ ((popPos+iW) % iW) +
'" top="' + pad + '">' + popInd + '</layer>';
else itemStr += '<div class="' + textClass + '" style="position: absolute; left: ' +
((popPos+iW) % iW) + '; top: ' + pad + '">' + popInd + '</div>';
}
if (isNS4) itemStr += (outBorder ? '<span class="' + (isOver ? overBorder : outBorder) +
'"><spacer type="block" width="' + (iW - 8) + '" height="' + (iH - 8) + '"></span>' : '') +
'<layer left="' + pad + '" top="' + pad + '" width="' + (iW - (2 * pad)) + '" height="' +
(iH - (2 * pad)) + '"><a class="' + textClass + '" href="#" ' +
'onClick="return false" onMouseOver="status=\'\'; ' + myName + '.over(\'' + mN + '\',' +
iN + '); return true">' + text + '</a></layer>';
else itemStr += '<div class="' + textClass + '" style="position: absolute; left: ' + pad +
'; top: ' + pad + '; width: ' + (iW - (2 * pad)) + '; height: ' + (iH - (2 * pad)) +
'">' + text + '</div>';
}
return itemStr;
}}
//##############################################################//
function popUpdate(docWrite, upMN) { with (this)
{
if (!isDyn) return;
for (mN in menu) with (menu[mN][0])
{
if (upMN && (upMN != mN)) continue;
var str = '', iX = 0, iY = 0;
for (var iN = 1; iN < menu[mN].length; iN++) with (menu[mN][iN])
{
var itemID = myName + '_' + mN + '_' + iN;
var targM = menu[href];
if (targM && (type == 'sm:'))
{
targM[0].parentMenu = mN;
targM[0].parentItem = iN;
}
var shrink = (outBorder && ((isDOM && !isIE) || window.opera) ? 2 : 0)
iW = (isVert ? width : len) - shrink;
iH = (isVert ? len : width) - shrink;
var isImg = (outCol.indexOf('.') != -1) ? true : false;
if (isDOM || isIE4)
{
str += '<div id="' + itemID + '" ' + (outBorder ? 'class="' + outBorder + '" ' : '') +
'style="position: absolute; left: ' + iX + '; top: ' + iY + '; width: ' + iW + '; height: ' +
iH + '; background: ' + (isImg ? 'url('+outCol+')' : outCol) +
((typeof(outAlpha)=='number') ? '; filter: alpha(opacity='+ outAlpha + '); -moz-opacity: ' +
(outAlpha/100) : '') +
'; cursor: ' + (href ? (isIE ? 'hand' : 'pointer') : 'default') + '" ';
}
else if (isNS4)
{
str += '<layer id="' + itemID + '" left="' + iX + '" top="' + iY + '" width="' +
iW + '" height="' + iH + '" ' + (outCol ? (isImg ? 'background="' : 'bgcolor="') +
outCol + '" ' : '');
}
str += 'onMouseOver="' + myName + '.over(\'' + mN + '\',' + iN + ')" ' +
'onMouseOut="' + myName + '.out(\'' + mN + '\',' + iN + ')">' +
getHTML(mN, iN, false) + (isNS4 ? '</layer>' : '</div>');
var spc = (outBorder ? 1 : 0)
if (isVert) iY += len + spacing - spc;
else iX += len + spacing - spc;
}
menuW = isVert ? width : iX;
menuH = isVert ? iY : width;
var eP = eval(par);
setTimeout(myName + '.setupRef("' + mN + '")', 50);
if (docWrite)
{
var targFr = (eP && eP.navigator ? eP : window);
targFr.document.write('<div id="' + myName + '_' + mN + '_Div" style="position: absolute; ' +
'visibility: hidden; width: ' + menuW + '; height: ' + menuH + '; z-index: 1000">' +
str + '</div>');
}
else
{
if (!lyr) lyr = setLyr('hidden', menuW, eP);
else if (isIE4) setTimeout(myName + '.menu.' + mN + '[0].lyr.sty.width=' + (menuW+2), 50);
with (lyr) { sty.zIndex = 1000; write(str) }
}
}
}}
//##############################################################//
function popSetupRef(mN) { with (this) with (menu[mN][0])
{
if (!lyr || !lyr.ref) lyr = getLyr(myName + '_' + mN + '_Div', eval(par));
for (var i = 1; i < menu[mN].length; i++)
menu[mN][i].lyr = getLyr(myName + '_' + mN + '_' + i, lyr.ref);
if (mN == 'root')
{
position();
lyr.vis('visible');
}
}}
//##############################################################//
function popPosition(wN) { with (this)
{
for (mN in menu) if (!wN || menu[mN][0].par == wN) with (menu[mN][0])
{
if (!lyr || !lyr.ref) continue;
if (typeof(offX)!='number' || mN=='root') lyr.x(eval(offX));
if (typeof(offY)!='number' || mN=='root') lyr.y(eval(offY));
}
}}
//##############################################################//
function PopupMenu(myName)
{
this.myName = myName;
this.showTimer = 0;
this.hideTimer = 0;
this.showDelay = 0;
this.hideDelay = 500;
this.showMenu = '';
this.menu =  new Array();
this.litNow = new Array();
this.litOld = new Array();
this.overM = 'root';
this.overI = 0;
this.actMenu = '';
this.nextItem = 1;
this.over = popOver;
this.changeCol = popChangeCol;
this.out = popOut;
this.click = popClick;
this.clearLyr = popClearLyr;
this.startMenu = popStartMenu;
this.addItem = popAddItem;
this.getHTML = popGetHTML;
this.update = popUpdate;
this.setupRef = popSetupRef;
this.position = popPosition;
this.showMenu = function(mName) { this.menu[mName][0].lyr.vis('visible') }
this.hideMenu = function(mName) { this.menu[mName][0].lyr.vis('hidden') }
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
Avatar billede gecko Nybegynder
29. maj 2003 - 13:07 #5
Jeg kan også maile alle koderne !?
Avatar billede killer_r Nybegynder
29. maj 2003 - 15:52 #6
Avatar billede Slettet bruger
30. maj 2003 - 10:53 #7
Problemet med den slags koder er, at de er umulige at få overblik over.
Måske skulle du i stedet forklare, hvilke steder i koden, du har rettet, for det må jo nødvendigvis være dér, fejlen opstår.
Avatar billede gecko Nybegynder
30. maj 2003 - 14:45 #8
jeg har rettet i det jeg sendte først
Avatar billede Slettet bruger
31. maj 2003 - 11:42 #9
Og hvad har du rettet? :)
Avatar billede gecko Nybegynder
31. maj 2003 - 14:32 #10
Lukker ... prøver noget andet
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester