Genom felsökning med Alert-metoden har jag kommit fram till att FF använder sig av sista else-satsen. Innan jag tittade på problemet trodde jag att det berodde på en saknad sådan kodbit, men den fanns alltså.
Varför förstår inte Firefox detta, som den ska göra?
Lagrena har de namn de ska ha, tex
I övriga webbläsare körs ovanstånde kod igenom fem gånger, med nytt lagernamn för varje gång, för att skapa en korrekt scroll.
I FF kommer första lagernamnet, sedan en alert med [object HTMLDivElement], och sedan är det stopp, med ett felmeddelande som härrör från att ovanstånde kod inte fungerar.
Scrollen kommer fram, men alert-rutan också, fem gånger.
Det går att scrolla ned, och upp, men ställer den in sig på autodarrning.
Dessutom går den ända ned, den stannar inte.
centerwindow.js kompletterade jag p.g.a. att om man som jag har blockerat popupfönster, kommer oppna att vara null.
I hooks.js skall det vara samma kod som för document.layers, d.v.s. Events.pageX/-Y. Med andra ord kan if-satserna skrivas om litet grand.
Även i doOnMouseUp-/Down måste du skriva om if-satserna. Firefox hamnar i else-sektionen, men förstår inte event. Däremot går which bra, precis som för NS4 m.fl.
Det innebär att window.open()-satsen returnerat null. Längre ned i koden göres ingen test för detta, utan egenskaper försökes kommas åt direkt:
oppna.window.focus
Nu, som bekant har inte null några egenskaper alls (jämför null.window.focus). Genom att ändra koden enligt exempelvis ovan, slipper de med popupblockerare felmeddelanden.
Var vill du att alert()-rutan skall komma upp?
Det verkar som att olika webbläsare använder olika värden för samma saker. Men det är ju ingenting nytt ;)
Ja, den borde jag ju hittat själv, OM man sänkt blicken...
Kan du gissa varför den koden överhuvudtaget finns där, den kan knappast tillföra något?
I vilket fall fungerar det perfekt nu. TACK!
Bifogar även en uppdaterad MM_findobj som behövs för att hitta objekt till MM_showHideLayers. Listade ut att det var det som fixade att inte submenyer visades.
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_showHideLayers() { //v3.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
obj.visibility=v; }
}
Används med MM_showHideLayers('div-id-namn','','show');
Super, helt enkelt.
Ska försöka lista ut varför vissa klasser inte gäller här, FF verkar inte acceptera den sistnämnda stilen när det finns två, tex texten nere till vänster.
Läs mer är ett annat problem, där finns endast klass.