Pulldown Menu mit Opera und Mozilla funzt nicht
marbu
- javascript
0 ChrisB0 Cheatah1 Gunnar Bittersmann
Hallo,
ich hoffe mir kann jemand helfen. Mit Internet-Explorer funktioniert alles
aber Opera und Mozilla machen mir Probleme. Ich weiß nicht mehr weiter, denn
jetzt war ich so lang drüber. Und jetzt geht's nicht. Vielen Dank für euere Hilfe.
Danke
menue.js
--------------------------------------------------------------------
version = '0';
var isMacIE = ( (navigator.userAgent.indexOf("IE 4") > -1) && (navigator.userAgent.indexOf("Mac") > -1) );
browserName = navigator.appName;
browserVer = parseInt(navigator.appVersion);
if (browserName == "Netscape" && browserVer >= 4)version = "n4";
else if (browserName == "Microsoft Internet Explorer" && browserVer >= 4) version = "e4";
if (version == "n4" || version == "e4" && !isMacIE)
{
document.write('' +
'<div id=menu1 class="menu"><a href="http://www.test.de/pulldown/" onmouseover=timer(1); onmouseout=timer(0);>Test</a>
}
----------------------------------------------------------------------
layer.js
-----------------------------------------------------------------------
var unself
if (_version != '1.2') {
window.onerror = new Function("return true;");
}
var isNS = (navigator.appName == "Netscape");
var isMacIE = ( (navigator.userAgent.indexOf("IE 4") > -1) && (navigator.userAgent.indexOf("Mac") > -1) );
var layerRef = (isNS) ? "document" : "document.all";
var styleRef = (isNS) ? "" : ".style";
var isDynamic = ( ((document.layers && document.layers['layerTest']) || (document.all && document.all['layerTest'])) && !isMacIE );
function getXCoord(imgID) {
if (isNS) xPos = document.images[imgID].x;
else xPos = getIEXCoord(imgID)
return xPos;
}
function getYCoord(imgID) {
if (isNS) yPos = document.images[imgID].y;
else yPos = getIEYCoord(imgID);
return yPos;
}
function getIEXCoord(imgElem) {
xPos = eval(imgElem).offsetLeft;
tempEl = eval(imgElem).offsetParent;
while (tempEl != null) {
xPos += tempEl.offsetLeft;
tempEl = tempEl.offsetParent;
}
return xPos;
}
function getIEYCoord(imgElem) {
yPos = eval(imgElem).offsetTop;
tempEl = eval(imgElem).offsetParent;
while (tempEl != null) {
yPos += tempEl.offsetTop;
tempEl = tempEl.offsetParent;
}
return yPos;
}
var activeMenu = 0;
function activateMenu(menuLayerRef, imageName, left, top) {
var lightsout
if (isDynamic && activeMenu != menuLayerRef) {
if (activeMenu) hideMenu("menu" + activeMenu);
menuID = "menu" + menuLayerRef;
activeMenu = menuLayerRef;
if (isNS) {
document[menuID].left = getXCoord(imageName) + left;
document[menuID].top = getYCoord(imageName) + top;
} else {
document.all[menuID].style.pixelLeft = getXCoord(imageName) + left;
document.all[menuID].style.pixelTop = getYCoord(imageName) + top;
}
showMenu(menuID, left, top)
}
}
function showMenu(layerID, left, top) {
eval(layerRef + '["' + layerID + '"]' +
styleRef + '.visibility = "visible"');
}
function hideMenu(layerID) {
eval(layerRef + '["' + layerID + '"]' +
styleRef + '.visibility = "hidden"');
}
// check if there's a menu active
function turnOff() {
if (activeMenu) {
menuID = "menu" + activeMenu;
hideMenu(menuID);
activeMenu = 0;
}
}
// kills menu on clickup
function init() {
if (isDynamic) {
if (isNS) {
document.captureEvents(Event.mouseup);
}
document.onmouseup = turnOff;
}
}
// this function needs to be called from the sub menus DIV
function hideMe() {
if (activeMenu) {
menuID = "menu" + activeMenu;
hideMenu(menuID);
activeMenu = 0;
}
}
// Work-around Netscape resize bug
if (isDynamic && isNS) {
origWidth = innerWidth;
origHeight = innerHeight;
}
function reDo() {
if (innerWidth != origWidth || innerHeight != origHeight) {
location.reload();
}
}
if (isDynamic && isNS) {
onresize = reDo;
}
function timer(offon) {
if (offon == 0) {
unself = setTimeout('turnOff()', 1200);
}
if (offon ==1) {
clearTimeout(unself);
}
}
--------------------------------------------------------------------------
Hi,
ich hoffe mir kann jemand helfen. Mit Internet-Explorer funktioniert alles
aber Opera und Mozilla machen mir Probleme.
Ach, "Probleme" ...
Ich weiß nicht mehr weiter, denn jetzt war ich so lang drüber.
Redest du jetzt noch von deiner Webseite, oder von deiner Freundin ...?
Und jetzt geht's nicht.
Das Script ist ziemlich veraltet, und du hast das uebliche Problem von Leuten, die sich einfach mal "ein Script aus dem Internet ziehen", und dann aber keine Ahnung haben, was es macht und wie es ggf. anzupassen waere.
Vorschlag: Fix in die Tonne damit, und dann bei SELFHTML die dynamische CSS-Navigation für moderne Browser anschauen. Die enthaelt weniger anachronistischen Bloedsinn, und duerfte - mit etwas CSS- und JavaScript-Kenntnissen - leichter einzubauen sein. Wenn's an denen noch ganz grundlegend fehlen sollte - dann schau dir erst mal die diesbezueglichen Einfuehrungskapitel bei SELFHTML an.
MfG ChrisB
Grundlage für Zitat #1005.
Hi,
var isMacIE = ( (navigator.userAgent.indexOf("IE 4") > -1) && (navigator.userAgent.indexOf("Mac") > -1) );
als dieses Script geschrieben wurde, hat man IP-Pakete noch per Buschtrommel übertragen (RFC 1149 BC). Vielleicht solltest Du ganz einfach JavaScript erlernen.
[ca. 150 Zeilen nutzfreier Code]
Und Dein Problem lautet ...?
Cheatah
Grundlage für Zitat #1007.
@@marbu:
Mit Internet-Explorer funktioniert alles
Nein. Es mag funktionieren, wenn JavaScript im Browser aktiviert ist (was bei IE wegen Sicherheitsmängeln nicht zu empfehlen ist).
Eine Navigation muss auch ohne JavaScript funktionieren! Nicht nur wegen menschlicher Besucher. [DIALOG-ROBOT]
Schau dir mal Stu Nicholls’ CSS only drop-down menu an!
Live long and prosper,
Gunnar