php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.07.2009, 16:02  
Erfahrener Benutzer
 
Registriert seit: 10.01.2009
Beiträge: 164
PHP-Kenntnisse:
Anfänger
scheffie befindet sich auf einem aufstrebenden Ast
Standard Javascript Cookie Problem

Hey,

habe ein Javascript für einen Style-Switcher und eins für das Menü

Aufrufen tu ich sie so

Code:
<script type="text/javascript" src="/js/menu.js"></script>
<script type="text/javascript" src="/js/styleswitcher.js"></script>
Hier der Style-Switcher

Code:
function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

window.onload = function(e) {
  var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  setActiveStyleSheet(title);
}

window.onunload = function(e) {
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
hier das Menü

Code:
var persistmenu="yes" //"yes" or "no". Make sure each SPAN content contains an incrementing ID starting at 1 (id="sub1", id="sub2", etc)
var persisttype="sitewide" //enter "sitewide" for menu to persist across site, "local" for this page only

if (document.getElementById){ //DynamicDrive.com change
document.write('<style type="text/css">\n')
document.write('.submenu{display: none;}\n')
document.write('</style>\n')
}

function SwitchMenu(obj){
	if(document.getElementById){
	var el = document.getElementById(obj);
	var ar = document.getElementById("menu").getElementsByTagName("ul"); //DynamicDrive.com change
		if(el.style.display != "block"){ //DynamicDrive.com change
			for (var i=0; i<ar.length; i++){
				if (ar[i].className=="submenu") //DynamicDrive.com change
				ar[i].style.display = "none";
			}
			el.style.display = "block";
		}else{
			el.style.display = "none";
		}
	}
}

function get_cookie(Name) { 
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) { 
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function onloadfunction(){
if (persistmenu=="yes"){
var cookiename=(persisttype=="sitewide")? "switchmenu" : window.location.pathname
var cookievalue=get_cookie(cookiename)
if (cookievalue!="")
document.getElementById(cookievalue).style.display="block"
}
}

function savemenustate(){
var inc=1, blockid=""
while (document.getElementById("sub"+inc)){
if (document.getElementById("sub"+inc).style.display=="block"){
blockid="sub"+inc
break
}
inc++
}
var cookiename=(persisttype=="sitewide")? "switchmenu" : window.location.pathname
var cookievalue=(persisttype=="sitewide")? blockid+";path=/" : blockid
document.cookie=cookiename+"="+cookievalue
}

if (window.addEventListener)
window.addEventListener("load", onloadfunction, false)
else if (window.attachEvent)
window.attachEvent("onload", onloadfunction)
else if (document.getElementById)
window.onload=onloadfunction

if (persistmenu=="yes" && document.getElementById)
window.onunload=savemenustate
So nun folgendes, beim Style-Switcher schreibt er das Cookie und merkt es sich auch einwandfrei, nur beim menü tut er nix? man kann es zwar aufklappen aber er merkt es sich nicht.

wenn ich den aufrauf der 2 datein umdrehe klappt das menü aber der switcher nicht, ich frage mich nur warum?

Da ich mich noch nicht so gut auskenne hoffe ich um eure Hilfe bei der beseitung des Problems.

lg scheffie
scheffie ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.07.2009, 20:45  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Wo hast du denn dein onclick-Event auf dem Menü-Link registriert? Sofern du das nicht implementiert hast, wird es auch keine Aktion geben.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 06.07.2009, 20:49  
Erfahrener Benutzer
 
Registriert seit: 10.01.2009
Beiträge: 164
PHP-Kenntnisse:
Anfänger
scheffie befindet sich auf einem aufstrebenden Ast
Standard

Code:
<a href="" onclick="SwitchMenu('sub1'); return false;" title="Die Band">Die Band</a>
das geht ja auch...nur er lässt nicht offen, sprich er schreibt das cookie nicht.

und wie gesagt wenn ich das
Code:
<script type="text/javascript" src="/js/menu.js"></script>
<script type="text/javascript" src="/js/styleswitcher.js"></script>
zu dem mache

Code:
<script type="text/javascript" src="/js/styleswitcher.js"></script>
<script type="text/javascript" src="/js/menu.js"></script>
dann bleibt das offen und er schreibt das cookie, dafür funktioniert der switcher nicht
scheffie ist offline   Mit Zitat antworten
Alt 18.07.2009, 18:15  
Erfahrener Benutzer
 
Registriert seit: 10.01.2009
Beiträge: 164
PHP-Kenntnisse:
Anfänger
scheffie befindet sich auf einem aufstrebenden Ast
Standard

kann niemand mehr helfen
scheffie ist offline   Mit Zitat antworten
Alt 18.07.2009, 18:19  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo scheffie,

lad dir mal das jQuery-Plugin für Cookies runter, das funktioniert definitiv.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 18.07.2009, 18:24  
Erfahrener Benutzer
 
Registriert seit: 10.01.2009
Beiträge: 164
PHP-Kenntnisse:
Anfänger
scheffie befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
Hallo scheffie,

lad dir mal das jQuery-Plugin für Cookies runter, das funktioniert definitiv.
Das wäre ne möglichkeit aber JQuery würd ich nur ungern nutzen
scheffie ist offline   Mit Zitat antworten
Alt 18.07.2009, 18:24  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Und warum?
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 18.07.2009, 18:33  
Erfahrener Benutzer
 
Registriert seit: 10.01.2009
Beiträge: 164
PHP-Kenntnisse:
Anfänger
scheffie befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von phpdummi Beitrag anzeigen
Und warum?
http://www.php.de/javascript-ajax-un...aufrollen.html ([Erledigt] Div aufrollen)

Quasi der selber Grund ^^
scheffie ist offline   Mit Zitat antworten
Alt 18.07.2009, 18:50  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry aber ich versteh dich grad nicht. Was spricht gegen jQuery?
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 18.07.2009, 18:53  
Erfahrener Benutzer
 
Registriert seit: 10.01.2009
Beiträge: 164
PHP-Kenntnisse:
Anfänger
scheffie befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von phpdummi Beitrag anzeigen
Sorry aber ich versteh dich grad nicht. Was spricht gegen jQuery?
es spricht nix dagegen..nu ich persönlich will in den scripten durchsehen.

weiß auch ne wie ich es erklären soll.

ist egal muss halt ne andere lösung suchen
scheffie ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
1101: 10x JavaScript und kein Ende ist abzusehen… Nikolaus 2.0 Adventskalender 2008 9 13.12.2008 20:11
Javascript Problem mit IE Lea JavaScript, Ajax und mehr 7 08.12.2008 09:36
Problem mit Einfügen von Formatierungszecihen per JavaScript max-dhom HTML, Usability und Barrierefreiheit 2 09.10.2007 23:21
JavaScript: IFrame: Wert aendern: Problem SvenLittkowski HTML, Usability und Barrierefreiheit 2 26.09.2007 00:49
Problem: javascript + verstecken eines Divs se-clan HTML, Usability und Barrierefreiheit 4 04.01.2007 10:49
Cookie Problem tomtaz PHP Tipps 2006 9 26.06.2006 12:36
problem mit javascript und smarty snatch-ic HTML, Usability und Barrierefreiheit 2 08.06.2006 22:11
Problem mit Javascript und PHP PHP Tipps 2006 7 09.02.2006 10:48
PHP Session und JavaScript Problem Stefano PHP-Fortgeschrittene 1 07.02.2006 23:21
problem mit javascript und hochkommas lindner PHP Tipps 2005 2 04.05.2005 16:54
[Erledigt] JavaScript problem HTML, Usability und Barrierefreiheit 1 15.03.2005 12:19
cookie problem PHP Tipps 2005 5 08.03.2005 21:22
Problem mit Cookie Kenshin PHP Tipps 2005 3 03.02.2005 18:55
[Erledigt] problem mit login skript | mysql | cookie PHP Tipps 2004-2 13 07.12.2004 19:01
Problem mit JavaScript: Läuft nur im IE HTML, Usability und Barrierefreiheit 8 11.08.2004 19:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript cookie ausklappen, function getactivestylesheet, div aufklappen cookie, php cookie javascript problem, var title = document.getelementbyid(*).getattribute(\title\);, php getactivestylesheet, php cookie name = var, jquery cookie plugin im html einsetzen, \was spricht gegen jquery\

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:45 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum