mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 19:52 Benutzername: Passwort: Auto-Login

Thema: a:visited mit Javascript vom 30.11.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Allgemeines - Nonprint -> a:visited mit Javascript
Autor Nachricht
audiokiller
Threadersteller

Dabei seit: 16.11.2006
Ort: Göttingen
Alter: 41
Geschlecht: Männlich
Verfasst Fr 30.11.2007 17:55
Titel

a:visited mit Javascript

Antworten mit Zitat Zum Seitenanfang

hi

habe folgende probleme

ich habe mir in javascript eine navileistenfunktion erstellt und möchte folgendes daran ändern

ich möchte besuchte links farbig hervorheben über css wäre das ja a:visited { bla bla bla;}

aber iwie funzt das net in javascript!

dann hab ich folgendes problem wie man am script sehen kann ist die menüleiste eine akkordeon leiste wie die von mootools wenn man halt auf ein link drauf klickt gehen untermenüs auf ich möchte dies untermenüs auf den jeweiligen seiten sichtbar lassen

Zitat:
var activeMenuItem = new Array();

function isUlInArray(inputObj,ulObj){
while(inputObj && inputObj.id!='dhtmlgoodies_listMenu'){
if(inputObj==ulObj)return true;
inputObj = inputObj.parentNode;
}
return false;
}

function showHideSub (e,inputObj)
{

if(!inputObj)inputObj=this;
var parentObj = inputObj.parentNode;
var ul = parentObj.getElementsByTagName('UL')[0];
if(activeMenuItem.length>0){
for(var no=0;no<activeMenuItem.length;no++){
if(!isUlInArray(ul,activeMenuItem[0]) && !isUlInArray(activeMenuItem[0],ul)){
activeMenuItem[no].style.display='none';
activeMenuItem.splice(no,1);
no--;
}
}
}
if(ul.offsetHeight == 0){
ul.style.display='block';
activeMenuItem.push(ul);
}else{
ul.style.display='none';
}
}

function showHidePath(inputObj)
{
var startTag = inputObj;
showHideSub(false,inputObj);
inputObj = inputObj.parentNode;
while(inputObj){
inputObj = inputObj.parentNode;
if(inputObj.tagName=='LI')showHideSub(false,inputObj.getElementsByTagName('A')[0]);
if(inputObj.id=='dhtmlgoodies_listMenu')inputObj=false;
}
}

function initMenu()
{
var obj = document.getElementById('dhtmlgoodies_listMenu');
var linkCounter=0;
var aTags = obj.getElementsByTagName('A');
var activeMenuItem = false;
var activeMenuLink = false;
var thisLocationArray = location.href.split(/\//);
var fileNameThis = thisLocationArray[thisLocationArray.length-1];
if(fileNameThis.indexOf('?')>0)fileNameThis = fileNameThis.substr(0,fileNameThis.indexOf('?'));
if(fileNameThis.indexOf('#')>0)fileNameThis = fileNameThis.substr(0,fileNameThis.indexOf('#'));

for(var no=0;no<aTags.length;no++){
var parent = aTags[no].parentNode;
var subs = parent.getElementsByTagName('UL');
if(subs.length>0){
aTags[no].onclick = showHideSub;
linkCounter++;
aTags[no].id = 'aLink' + linkCounter;
}

if(aTags[no].href.indexOf(fileNameThis)>=0 && aTags[no].href.charAt(aTags[no].href.length-1)!='#'){
if(aTags[no].parentNode.parentNode){
var parentObj = aTags[no].parentNode.parentNode.parentNode;
var a = parentObj.getElementsByTagName('A')[0];
if(a.id && !activeMenuLink){

activeMenuLink = aTags[no];
activeMenuItem = a.id;
}
}
}
}

if(activeMenuLink){
activeMenuLink.className='activeMenuLink';
}
if(activeMenuItem){
if(document.getElementById(activeMenuItem))showHidePath(document.getElementById(activeMenuItem));
}
}
window.onload = initMenu;



2. möchte ich das so einstellen das bilder in einem neuen fenster aufgehen - das fenster soll in der bildgröße sein.

danke schon mal im vorraus Lächel
  View user's profile Private Nachricht senden
Ypsilon

Dabei seit: 22.01.2007
Ort: -
Alter: 43
Geschlecht: Männlich
Verfasst Fr 30.11.2007 18:10
Titel

Antworten mit Zitat Zum Seitenanfang

Hi,

falls du das für ein gewisses Projekt machen willst: mach es lieber in CSS Grins Glaub mir, deine Teamkollegen werden es dir danken muahaha

Grüße
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Raumwurm

Dabei seit: 21.12.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 01.12.2007 12:04
Titel

Antworten mit Zitat Zum Seitenanfang

Zu 1.
Öh wieso machst Dus Dir nicht leichter und nimmst
nicht gleich die mootools-Lib? Kannst ja nur die
Sachen reinpacken die Du benötigst - spart Dir eine
Menge Tipp- und Testarbeit. Für das highlight setzen
kannst Du ja den rel-Tag missbrauchen und dort den
Filename reinpacken und per JS dann drüberrauschen
und location.href damit vergleichen - also nur falls
kein php zur Hand.

Zu 2.
Entweder auf der opener.Seite per asset.js (mootools)
das/die Bild(er) nach Klick auf den entsprechenden
Link preloaden -> und die Bildgröße(n) in ein Array
packen - wenn nötig - und dann dem win.open übergeben.
Oder das window öffnen - Bildmaße auslesen und das
Popup resizen - wobei man das in manchen Browsern
unterdrücken kann.
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 01.12.2007 14:11
Titel

Antworten mit Zitat Zum Seitenanfang

Die CSS-Lösung würde ich sofort verwerfen. Komplexere Menustrukturen lassen sich damit kaum crossbrowser-optimiert verwalten, außerdem hat Applikationslogik in der Darstellungsschicht nichts verloren.

Um den Status des Menus zu speichern, kannste bspw. Cookies verwenden. document.cookie wäre die entsprechende Eigenschaft. Cookies bestehen aus separierten Schlüssel/Wert-Paaren.

Bspw.:
phpsessionid=hanswurst; myActiveMenu=1. Du wirst also nicht umhinkommen, deinen Cookiestring zu parsen (die Methode dafür ist String.split())
  View user's profile Private Nachricht senden
 
Ähnliche Themen Lightbox 2 - a:visited
Link visited löschen?
rollover trotz visited
Menü HTML a:visited => eigentlich einfach
[javascript] mit <select> feld wert an javascript funk
javascript in php
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Allgemeines - Nonprint


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.