Zum Inhalt springen

Realurl und DropDown Menu Problem in IE

Erstellt am 11. Juli 2010 · 4 Antworten · letzte Antwort am 17. Juli 2010

Tags: Frage

stefan72 ·

Hallo, ich gelange wieder mal mit einem Anliegen die Community...

Ich setze die mm_dam-filelist extension ein. Mit einem in der ext. eingebauten Menu lassen sich einzelne Kategorien von Dateien anwählen und anzeigen. Bild: flightwork.com/…/menu_typo3.jpg

Im IE funktioniert die Anwahl der Kategorien nicht sauber da Realurl einen falschen Link generiert und ein 404 Error ausspuckt.
Korrekt wäre z.B. http://domain.com/test/kategorie/
Mit dem IE wird daraus http://domain.com/test/[b]test[/b]/kategorie/
Es wird also ein 'test' zuviel eingefügt.

Ich bin etwas ratlos wo ich den Hebel ansetzen muss. Bei realurl? oder beim JS der Extension?
baseUrl ist gesetzt...config.baseURL = http://domain.com/

Wo könnte ich noch schrauben? Bin für jeden Input sehr dankbar.
Grüsse, Stefan

Mopps ·

"Mit dem IE wird daraus http://domain.com/test/test/kategorie/"
Und bei anderen Browsern stimmts? 😉

Das Problem liegt entweder bei der mm_dam-filelist extension, weil sie evtl. die Links nicht so aufbaut, dass realUrl sie richtig umschreiben kann. Oder die Konfi für realUrl stimmt nicht.

stefan72 ·

Ja, leider ist's nur der IE der nicht mitmacht... 🙁
Bei anderen beiträgen war jeweils das fehlende '/' am Schluss der baseURL config für das Problem zuständig zu sein. Da dies gesetzt ist und sonst realurl auf der gesamten Seite einwandfrei läuft, denke ich eher an ein Problem der extension.

Der Author von mm_dam_filelist hat die extension auf seiner Webseite laufen und das gleiche Problem taucht auch dort auf. Scheint also an der extension zu liegen...Werde versuchen das Dropdown Menu durch was anderes zu ersetzen, es sei denn jemand hat noch eine Idee. Bringt es was wenn ich den js Code für das dropdown menu hier aufliste?

Mopps ·

"Ja, leider ist's nur der IE der nicht mitmacht..."
Aber prinzipiell hat doch der Browser mit diesem Problem gar nicht zu tun. Der rendert doch die Links nicht, er zeigt sie nur an. Der Browser bekommt den Quelltext übermittelt, d.h. der Fehler besteht schon vorher.

"Bringt es was wenn ich den js Code für das dropdown menu hier aufliste?"
Kann ja nicht schaden. Ich kenne mich mit JavaScript nicht so gut aus, aber es gibt ja noch andere hier im Forum.

stefan72 ·

Ja, da hast du schon Recht. Der IE zeigt sie aber falsch an 🙂
Das Problem hier ist der Quelltext und der muss auf den IE abgestimmt werden.

Also hier der Code der vermutlich Ursache des Problems ist:
Im Template steht:

<!-- ModeSelector (Categories) -->
<!--###MODE_SELECTOR### begin -->
<div ###MODESELECTORCLASS###>
	
	<script type="text/javascript">
		function onSelectModeCombo(combo) {
		  var urlFromCombo = combo.options[combo.selectedIndex].value;
		  //alert(urlFromCombo);
		  if(urlFromCombo != '') window.location.href = urlFromCombo;   
		}
	</script>
	
	<div class="label">###LABEL###</div>
	<select size="1" ###MODESELECTORCLASS### onChange="javascript:onSelectModeCombo(this);">
		<!--###SELECTOR### begin -->
			<option value="###SELECTOR_ELEMENT_HREF###" ###SELECTOR_ELEMENT_CLASS### ###SELECTED###>###SELECTOR_ELEMENT_TEXT###
		<!--###SELECTOR### end -->
	</select>
</div>
<!--###MODE_SELECTOR### end -->

Nicht sicher ob es sich hier um den richtigen JS code handelt:

/*
Scritp direkt von http://www.just2b.com/fileadmin/ringergeorg/div/listmenu1.js
Beschreibung auf Website (http://www.just2b.com/mein-typo3/css-ts-menues/vertikales-dropdown-menue.html)
stimmt nicht.

Basisinfo:
	http://www.just2b.com/mein-typo3/css-ts-menues/vertikales-dropdown-menue.html
*/
function IEHoverPseudo() {

	var navItems = document.getElementById("nav").getElementsByTagName("li");
	
	for (var i=0; i<navItems.length; i++) {
		if(navItems[i].className == "menuparent") {
			navItems[i].onmouseover=function() { this.className += " over"; }
			navItems[i].onmouseout=function() { this.className = "menuparent"; }
		}
	}

}
window.onload = IEHoverPseudo;

Ein ajax code gibts auch noch:

f

unction myJSFunction(firstArg, numberArg, myArrayArg) {
    var newString = firstArg + " and " + (+numberArg + 100) + "\n";
    newString += myArrayArg["myKey"] + " | " + myArrayArg.key2;
    alert(newString);
    
    xajax.$('myDiv').innerHTML = newString;
}

function changePreviewImage(tagID,imgTag) {
	//alert(imgTag);
	xajax.$(tagID).innerHTML = imgTag;
}

Kennt sich damit jemand aus und kann mir sagen was den IE dazu bringt den link in Realurl nicht korrekt anzuzeigen?

Sorry, der Code container für JS, HTML etc scheint nicht zu funktionieren daher habe ich den php container benutzt.