MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Programmierung und Entwicklung (Allgemein) > Web-Programmierung
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 07.07.2014, 11:19   #1
Huan90
Neuer Benutzer
Neuer Benutzer
Weinen JS - Baumstruktur_li_nicht_kompatibel_zu_IE

Hallo liebe MS-Forum Gemeinde,

ich habe für unser "Intranet" eine Website bauen sollen, auf der ein Verzeichnis dynamisch als Menü dargestellt werden soll. Befinden sich in einem der Unterordner PDF-Dateien, sollen diese auf Klick des entsprechenden Verzeichnisses (im Menü) angezeigt werden.

Folgender code wurde im FireFox getestet und funktioniert hier:
Code:

<html>
	<head>
	<link rel="stylesheet" type="text/css" href="mein.css"/>
	<title>Gefährdungsbeurteilung</title>
	
	<?php
		function scandir_rec($dir)
		{
			$files = scandir($dir);
			
			$d = $f = array();
			foreach($files as $file) if($file != '.' && $file != '..')
				if(!is_file($dir.'/'.$file))
					$d[htmlentities($file, 0, "ISO8859-1")] = scandir_rec($dir.'/'.$file); // Wenn Unterordner dann erst nochmal aufrufen
				else
				{
					$file = explode('.', $file);
					if(array_pop($file) == 'pdf')
						$f[htmlentities(implode('.', $file), 0, "ISO8859-1")] = htmlentities(implode('.', $file), 0, "ISO8859-1");	// Wenn Datei dann in Array schreiben
				}
			
			return array_merge($d, $f);
		}
		
		$tree = scandir_rec("pdfs");
	?>
	<script language="JavaScript">
		var tree = <?php echo json_encode($tree); ?>; //Namen/Pfad-Array aus php an JS "var tree" übergeben
		
		function build_tree(tree, path = "")
		{
			html = "<ul>";
			for(dir in tree)
			{
				if(typeof tree[dir] !== "string") //Wenn Array statt String
				{
					files = {};
					for(file in tree[dir])
						if(typeof tree[dir][file] === "string")
							files[tree[dir][file]] = path+"/"+dir+"/"+file; // Wenn String, hinten anfügen
							
					html += "<li>";
					html += "<input type=\"button\" value=\"-\" onclick=\"toggle(this);\"/>";
					html += "<a href=\"javascript: build_documents("+JSON.stringify(files).replace(/"/g, '&quot;')+");\">"+dir+"</a>";
					html += build_tree(tree[dir], path+"/"+dir);
					html += "</li>";
				}
			}
			html += "</ul>";
			if(html == "<ul></ul>")
				return "";
			return html;
		}
		
		function build_documents(files)
		{
			html = "";
			for(idx in files)
			{
				html += "<input type=\"button\" class=\"doc\" onclick=\"location.href = 'pdfs"+files[idx]+".pdf';\" value=\""+idx+"\" />";
			}
			document.getElementById("documents").innerHTML = html;
		}
		
		function toggle(obj) //Wenn Vater = "ul" (Liste) ausklappen/einklappen
		{
			ul = obj.parentNode.getElementsByTagName('ul')[0];
			if(ul.style.display=='none')
			{
				obj.value = "-";
				ul.style.display ="";
			}
			else
			{
				obj.value = "+";
				ul.style.display = "none";
			}
		}
		
		function mailpopup()
		{
			//alert("YOU");
			pop = window.open("mailpopup.php", "E-Mail Popup", "width=580, height=100");
			pop.focus;
			
		}
	</script>
	</head>
	
	<body onload="document.getElementById('tree').innerHTML = build_tree(tree);">
	
	<div class="header">
	<span class="unvis"></span><span class="headertext">Gefährdungsbeurteilung... ... ... </span>
	
	<input type="button" class="mailbutt" onclick="mailpopup()" value="E-MAIL VERSENDEN">
	<img src="Logo.bmp" align="right" alt="Logo"></img>
	</div>
	<div id="tree"></div>
	<div id="documents">
	</div>
	
	</body>
</html>
Leider bin ich nun dazu gezwungen den InternetExplorer zu nutzen. Dieser zeigt mir das Menü nicht an.

Der IE-Script-Debugger zeigt mir folgende Zeile an:
Code:

<body onload="document.getElementById('tree').innerHTML = build_tree(tree);">
Und sagt mir, "objekt erwartet"....

Kann mir jmd. sagen, was den IE stört und ggf. eine Alternative vorschlagen?
Es führt wie gesagt leider kein Weg um den InternetExplorer herum....

Vielen Dank im Voraus,
LG Huan90

p.s. Als Alternative könnte ich auch einen Rat vertragen, wie ich unsere EDV-Abteilung dazu bringe ihre Software-policy dahingehend zu ändern, dass verteufelte MS-Software nicht mehr zum Einsatz kommt sondern, zumindest als Browser, einer von einem Hersteller, der sich an Internetnormen hällt, anstatt seine eigenen zu definieren... *cry*

Geändert von Huan90 (07.07.2014 um 11:44 Uhr).
Huan90 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.