arroMedlem sedan okt. 200154 inlägg
är det någon som förstår sig på Netscape 6 nya DOM? Kan ni isåfall hjälpa mig med följande kod (som positionerar lager och visar olika lager, beroende på var man trycker) som funkar i gamla DOM men inte i NS6.
Scriptet "in action" finns på http://www.andreasrolfer.com .
Eller vet någon ett bra ställe att läsa om NS6 DOM, så kan jag fixa det själv...
<script language="JavaScript">
<!--
// Bestämmer webbläsare
var isNav= false;
var isIE= false;
var engage = false;
var activeLayer = 'window';
var contentWidth = 640;
var contentHeight = 700;
if(navigator.appName=="Netscape") {
isNav= true;
}
if(navigator.appName=="Microsoft Internet Explorer") {
isIE= true;
}
//layers section
function viewDescription(layername) {
if(isIE) {
if(document.all[layername].style.visibility!="visible") {
document.all[activeLayer].style.visibility = "hidden";
document.all[layername].style.visibility = "visible";
activeLayer = layername;
} else {
document.all[activeLayer].style.visibility = "hidden";
}
}
if(isNav) {
if(document.layers["mammalager"].document.layers[layername].visibility!="show") {
document.layers["mammalager"].document.layers[activeLayer].visibility = "hide";
document.layers["mammalager"].document.layers[layername].visibility = "show";
activeLayer = layername;
} else {
document.layers["mammalager"].document.layers[activeLayer].visibility = "hide";
}
}
}
// -->
</script>
</head>
<body bgcolor="#FFFFFF" text="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<script language="JavaScript">
if (isIE) {
var mammalager_left = Math.round((document.body.clientWidth-contentWidth)/2);
var mammalager_top = Math.round((document.body.clientHeight-contentHeight)/2);
} else {
var mammalager_left = Math.round((window.innerWidth-contentWidth)/2);
var mammalager_top = Math.round((window.innerHeight-contentHeight)/2);
}
if (mammalager_left <= 0) { mammalager_left = 0; }
if (mammalager_top <= 0) { mammalager_top = 0; }
document.writeln('<div id="mammalager" style="position: absolute; visibility: visible; left:'+mammalager_left+'px; top: '+mammalager_top+'px; width: 640px; height: 558px; z-index: 0;">');
</script>
------------------
/arro
JonMedlem sedan juli 20011 126 inlägg
Kan hjälpa dig med visibility problemet i alla fall.
Kolla om det är ns6 med:
if(document.getElementById)
{
// göra saker
}
Visa/dölj:
document.getElementById(layername).style.visibility="hidden";
document.getElementById(layername).style.visibility="visible";
------------------
The computer is mightier than the pen, the sword, and usually, the programmer.
beikerMedlem sedan juli 200185 inlägg
document.all['id'] finns inte i ie6... kör document.getElementById('istället')
beikerMedlem sedan juli 200185 inlägg
hehe... fan vad soft... en svarade före när jag snackade i telefon... jaja... kan väl lägga till lite... har inte 110% koll på det än men alla grejer jag har gjort för ns6 funkar i ie6 så om du inte hittar någon dokumentation om ie6 så läs det om ns6 istället... det är äntligen på väg att bli någon sorts standardisering... så om fem år kanske man slipper skriva för tre olika webbläsare + fulkodsversioner för mac... utopi iof... kommer aldrig att hända...
tjipp
/beiker
arroMedlem sedan okt. 200154 inlägg
Jaja, tack för hjälpen men det funkar tyvärr inte. Skiljer sig eventhandlers från tidigare versioner?
------------------
/arro
JonMedlem sedan juli 20011 126 inlägg
Visst skiljer sig eventhandlers åt.
ger ett lite större exempel.
Koden kollar om musen flyttas och flyttar ett lager med musen. Det kanske ger lite förståelse :)
if (document.all)
{
document.onmousemove = move;
}
else if (document.layers)
{
window.captureEvents(Event.MOUSEMOVE);
window.onMouseMove = move;
}
else if (document.getElementById)
{
document.addEventListener("mousemove",move,true);
}
var Xmusposition;
var Ymusposition;
function move(ev)
{
if (document.all)
{
Xmusposition = window.event.x;
Ymusposition = window.event.y;
}
else if (document.layers)
{
Xmusposition = ev.pageX;
Ymusposition = ev.pageY;
}
else if (document.getElementById)
{
Xmusposition = ev.pageX;
Ymusposition = ev.pageY;
}
flytta_lager(divnamn,Xmusposition,Ymusposition);
}
function flytta_lager(lagernamn,x,y)
{
if (document.all)
{
document.all[lagernamn].style.left = x;
document.all[lagernamn].style.top = y;
}
else if (document.layers)
{
document.layers[lagernamn].left = x;
document.layers[lagernamn].top = y;
}
else if (document.getElementById)
{
var myobj;
myObj = document.getElementById(lagernamn);
myObj.style.left = x + "px";
myObj.style.top = y + "px";
}
}
------------------
The computer is mightier than the pen, the sword, and usually, the programmer.
[Redigerat av Jon den 09 nov 2001]
arroMedlem sedan okt. 200154 inlägg
Stort tack allihopa! Nu funkar det!
------------------
/arro
spangoMedlem sedan juni 20006 147 inlägg
document.all['id'] finns inte i ie6...
Verkligen? Det finns få saker som skulle kunna gjort mig gladare än det beskedet!
------------------
You can be a coward for a few minutes, or dead forever. /Rincewind