Zum Inhalt springen

JavaScript im Menüpunkt

Erstellt am 9. Juli 2009 · 3 Antworten · letzte Antwort am 11. Juli 2009

Tags: Frage

peppy ·

Hallo zusammen,

ist es nicht einfach möglich JavaScript im Menü auszuführen? Über "Link zu externer URL" klappt es jedenfalls nicht.

Ich möchte einfach nur "Javascript:window.print();" für einen Navigationspunkt festlegen…

yahooooo ·

Was heißt denn "klappt nicht"? Ich habs jetzt nicht ausprobiert, aber nimmt TYPO3 den Code an sich nicht an oder stören Dich die Umleitungsurls? Für letzteres:
http://typo3-blog.net/tutorials/news/seitentyp-externer-verweis.html

Alternativ könntest Du die Links im Menü so wrappen, dass sie eigene IDs bekommen, die Du dann per JS ansprechen kannst. Einfach den Link mit der bestimmten ID mit einem OnClick-Handler belegen, welcher die Funktion window.print() aufruft und ein false returnt.

peppy ·

Ne, das klappt leider nicht. Alle "normalen" URLs werden weitergeleitet. Aber wenn ich JavaScript eingebe, dann führt es zu folgender Fehlermeldung:

Warning: parse_url(http://javascript:window.print()😉 [function.parse-url]: Unable to parse URL in xxx/t3lib/class.t3lib_page.php on line 705

peppy ·

Ich habe es nun über einen Umweg gelöst. Auf der Seite, auf der in der Navigation die JavaScript Durckfunktion liegen soll, habe ich im Backend den Seitentyp von "Standard" auf "Einstiegspunkt" geändert.

Die Navigation habe ich anschließend über folgendes TypoScript realisiert:

	lib.navTop = HMENU
	lib.navTop {
		entryLevel = 0
		special = directory
		1 = TMENU
		1 {
			noBlur = 1
			wrap = <ul id="metaNav">|</ul>
			NO = 1
			NO {
						ATagTitle.field = title
						wrapItemAndSub = <li class="nav-anfang">|</li> |*| <li>|</li> |*| <li class="nav-ende">|</li>

						ATagParams.cObject = CASE
						ATagParams.cObject {
							key.field = doktype
							7 = TEXT
							7.value = href="javascript:window.print();"
						}
						
			}
			ACT = 1
			ACT {
						ATagTitle.field = title
						wrapItemAndSub = <li class="nav-anfang">|</li> |*| <li>|</li> |*| <li class="nav-ende">|</li>

						ATagParams.cObject = CASE
						ATagParams.cObject {
							key.field = doktype
							default = TEXT
							default.value = class="aktiv"
							7 = TEXT
							7.value = href="javascript:window.print();" class="aktiv"
						}
			}
			IFSUB = 1
			IFSUB < .NO
			
			CUR < .NO
			
			CUR.doNotLinkIt = 1
		}		
	}

"Einstiegspunkt" brauch ich sonst nicht. Wofür ist dieser Punkt überhaupt gut?