Zum Inhalt springen

TV liest kein JS bzw. Stylesheet

Erstellt am 25. Juni 2007 · 13 Antworten · letzte Antwort am 2. Juli 2007

Tags: Frage

hg.​beyer ·

Hallo,
mein Name ist Hans und ich habe eine wichtige Frage und denke, dass sie hier am besten aufgehoben ist. Zu meinem Typo3/TV Kenntnissen: Ich habe ein 3-tägiges Typo3 Seminar mitgemacht und hab eine kleine Ausbildung als Redakteur abgeschlossen
TV hab ich mir im Großen und Ganzen selbst angeeignet. Ich hab das "Modern Template Building, Part1" , "Futuristic Template Building (FTB)" und das TV Tutorial auf Pixelmotor😃eveloper:Wiki:Typo3:TemplaVoila gelesen und auch verwirklicht. Jetzt wollte ich mein eigenes Template hochladen und zeigen was ich neues gelernt habe

Ich hab mir über Selfhtml und Css4you und anderen Seiten mir eine Page aufgebaut.
In meiner Index.html verweise ich im head-bereich auf eine JS datei anstatt auf ein Stylesheet ( wie es immer in den Tutorials ist ) :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/Strict.dtd"> <html> <head> <title>Fahrschule Holger Krüger Projekt </title> <script language="JavaScript" type="text/javascript" src="setcss.js"></script> <script type="text/javascript"> <!--
setcss();
//--> </script> </head> <body> <div id="header"> </div> <div id="headline"> <img src="imageklein/logo.png" alt="Logo" style="margin:2px; float:left;" /> <img src="imageklein/logo.png" alt="Logo" style="margin:2px; float:right;" /> <span class="headline">Fahrschule und Busbetrieb Holger Krueger</span> </div> <div id="mainmenu"> <a href="#" style="margin-top:20px;">Startseite </a> <a href="#">Über uns</a> <a href="#">F-Klassen </a> <a href="#">Schulungsfzg</a> <a href="#">Fahren mit 17</a> <a href="#">Kontakt</a> <a href="#">Busbetrieb</a> <a href="#">Fahrtrainer</a> <a href="#">Siegerbilder</a> <a href="#">Impressum</a> </div> <div id="content"> </p> </div> <div id="footer"> </div> </body> </html>

in dieser Datei steht, dass je nach Bildschirmauflösung ein anderes SS geladen werden soll:

function setcss() {
if (screen.width == 1024) {
document.write("<link rel=stylesheet type=text/css href=ssfhkklein.css />");
}
if (screen.width > 1024) {
document.write("<link rel=stylesheet type=text/css href=ssfhkgross.css />");
}
if (screen.width < 1024) {
document.write("<link rel=stylesheet type=text/css href=ssfhkklein.css />");
}
}

Nachdem ich das DS und TO erstellt habe, wurde kein SS geladen. Ich sehe nur die Überschrift und 2 Logos ( weil ich diese ja in meiner Index.html einlese).

Wie sage ich denn TV, dass er die setcss.js richtig lesen soll, bzw wie lade ich die CSS dateien?. In " Adding parts from HTML Header" habe ich alles angeklickt was verfügbar war.

Bitte dringend um Hilfe. Ich hab solange an meinem Template gesessen und war natürlich sehr ernüchtert, als das nicht funktioniert hat.
Vielen Dank für eure Unterstützung.
Hans

daniz78 ·

Hallo Hans,

spontan fallen mir dazu 2 Fragen ein:

Frage 1: wird die JS auch in Deine Typo3-Seite geladen?
Frage 2: wird die setcss()-Funktion irgendwo aufgerufen?

Gruß, Daniz

hg.​beyer ·

Frage 1)

Die Originalseite wird richtig dargestellt. Die JS wird richtig eingelesen und das mit der Auflösung klappt auch richtig. Den Ordner habe ich testweise auch auf einen Server geladen und geschaut ob online auch alles richtig dargestellt wird.
Erst mit dieser Absicherung habe ich mich daran gemacht, die Dateien in Typo3 einzulesen und dann via TV das Template einzubinden. Bild: pictureupload.de/…/250607132906_Filelist.jpg
(Hier sieht man, dass alle Dateien am richtigen Ort sein sollten.)

Frage 2)

Ich habe meinen HTML code im ersten Post zur Verfügung gestellt.
Im Head bereich steht:

#
<script language="JavaScript" type="text/javascript" src="setcss.js"></script> <script type="text/javascript"> <!--
#
setcss();
#
//--> </script>

Ich wette das is wieder mal nurn kleiner Haken irgendwo 😃
thx hans

daniz78 ·

Die Dateien sind zwar am richtigen Ort, aber was steht denn in der von Typo3 generierten HTML bzw. wie lautet dort der Pfad zur js?

Ok, den Funktionsaufruf habe ich dann mal elegant übersehen...
...was ist denn, wenn Du Dir erstmal etwas mit alert(); ausgeben lässt?

Gruß, Daniz

hg.​beyer ·

Vlt. eins vorab.. ich bin nur ein kleiner Hobby-Programmierer und kenn mich in Sachen JS gar net aus. Das Script habe ich im Netz gefunden und war froh, dass es funktionierte. D.h., dass ich zwar weiß was du mit alert()meinst aber keinen Plan habe, wie ich das umsetzen soll.

was steht denn in der von Typo3 generierten HTML bzw. wie lautet dort der Pfad zur js?

Ich wusste gar net, dass Typo3 meine HTML nochmal umschreibt. Also als ich bei TV das Template eingelesen hatte zum mappen und Preview klickte, hat man das Templte schon nicht sehen können. Wenn du mir sagst, wo ich den Typo3htmlcode finde, poste ich ihn dir sicher gerne!

thx Hans

daniz78 ·

Zum alert: erweitere die Funktion wie folgt:

function setcss() {

  alert('setcss wurde aufgerufen...');

  if (screen.width == 1024) {
  ...
  }
}

Dies bewirkt, das ein kleines Fenster aufgeht, in dem der Text ausgegeben wird...hier also 'setcss wurde aufgerufen'.

Du kannst zwar unter TV die Option "Adding parts from HTML Header" benutzen, schicker und vor allem flexibler ist aber die Informationen per TS in den Header zu schreiben. D.h. Du schreibst sie in das Setup-Feld Deines Root-Templates, dort wo Du die Seite definierst...

page = PAGE
page {

	typeNum = 0

	### Dateivorlage mit TemplaVoila einbinden ###
	10 = USER
	10.userFunc = tx_templavoila_pi1->main_page

	### Headerdaten schreiben ###
	headerData = TEXT
	headerData {
		# schreibt den Seitentitel in den Header
		10.field = subtitle // title
		10.wrap = <title>|</title>
		
		20 = TEXT
		20.value (
			<script language="JavaScript" type="text/javascript" src="fileadmin/TemplateHK/setcss.js"></script>
			
			<script type="text/javascript"> <!--
			setcss();
			//--> </script>
		)
	}
}

Wenn du mir sagst, wo ich den Typo3htmlcode finde, poste ich ihn dir sicher gerne!

Damit meine ich den normalen Quelltext wenn Du Dir die Typo3-Seite anschaust. Also rechte Maustaste->(Seiten-)Quelltext anzeigen.

hg.​beyer ·

Also erstmal Danke, dass du dich so intensiv mit meinem Problem beschäftigst!
Ich hab meine setcss.js erweitert und wenn ich miene Rootpage anzeigen lassen will dann kommt auch die Alert message. Allerdings 2mal. WIe auch immer, die Datei wird also richtig eingelesen. Ich hab dein TS kopiert und bei mir eingefügt. Ungefähr so:http://image-upload.biz/files/15453a95bb2d89ed63d6910b8.jpg
Jetzt bin ich ratlos. dachte die ganze zeit mein JS wird nicht eingelesen und deswegen läd er die Stylesheets nicht. Aber so wies scheint ließt er die JS doch richtig aus. /grml Was könnt das jetzt noch sein ?
thx Hans

daniz78 ·

Da sind wir ja schonmal einen ganzen Schritt weiter... ;-)

Ich denke mal es ist ein Pfadproblem!
Auch wenn Du die index.html mappst, liegt die eigentliche index-Datei (index.php) nicht in diesem Verzeichnis, sondern auf der gleichen Ebene wie der Ordner "fileadmin".

D.h. Du solltest Deinen Pfad zu den css-Dateien um "fileadmin/templates/TemplateHK/" erweitern. Alternativ mal den absoluten Pfad inklusive "http://" und "www" angeben.

Gruß, Daniz

hg.​beyer ·

Also wenn das nur ein Pfadproblem ist, dann bin ich echt glücklich 😃

Du solltest Deinen Pfad zu den css-Dateien um "fileadmin/templates/TemplateHK/" erweitern.

In meinen CSS dateien stehen keine Pfadangaben bis auf die Hintergundbilder. Oder meintest du die setcss.js ? Hier habe ich Pfadnamen erweitert "fileadmin/TemplateHK/" ... du hattest geschrieben

"fileadmin/templates/TemplateHK/"

. War das /templates/ absicht oder Versehen, weil ich diesen zwischenordner nicht besitze.

Wie auch immer. Ich hab also die Pfadnamen geändert und alles aktualisiert und es hat sich auc was getan. Statt 2 mal die Alert-Meldung kommt sie nur noch einmal 😉 aber trotzdem seh ich kein Anzeichen von irgendeiner Formatierung.

Schon wenn ich in meiner Filelist bin und dort auf meine index.html klicke zeigt er mir dort alles ohne Formatierung an ... Also völlig unabhänigig von TV und dem gemappe.

Bild: imgbox.de/…/x50444o196_t.gif

daniz78 ·

Also wenn Du schon in der Original HTML-Datei unter filelist keine css-Formatierung angezeigt bekommst, dann liegt es ja nicht an Typo3.

Wo liegt denn die HTML-Datei? Kann ich mir die mal anschauen?
Ich möchte Dir nix klauen, nur wenn Du in die Werkstatt fährst, weil Dein Auto kaputt ist, bringst Du es ja auch mit...wenn Du verstehst was ich meine!

Ich kann Dir so leider nicht weiterhelfen...

Gruß, Daniz

P.S.: Das /templates/ war ein Versehen

hg.​beyer ·

Wenn du mir deine Mailaddi via pm schickst, würd ich dir meine Daten schicken 😃

zu meinem Post davor:
Kein wunder, dass er mir die Index.html nicht mehr richtig angezeigt hat in der Dateiliste, weil ich ja die die Pfade geändert hatte in der setcss.js ...
Als ich diesen schritt wieder rückgängig gemacht habe, hats auf diesen weg wieder funktioniert. Also liegt es doch! an TV! Nach dem mappen lädt er keine SS.

daniz78 ·

Das JS wird aber geladen, oder? Bin mir dann nicht sicher ob das JS in Typo3 funktioniert?!?

Wir wollen den ganz dunklen Teil unserer Geschichte mal vergessen und das Kind bei seinem richtigen Namen nennen! Es heisst CSS (Cascading Style Sheets) nicht SS! ;-)

Wenn Du mir den Link zu Der Seite schickst, kann ich da mal drüber schauen!

Gruß, Daniz

hg.​beyer ·

Also JS wird auf jeden Fall geladen, weil der Alert(); ja funktioniert. Danach wird aber kein CSS geladen. Offline funktioniert das jedoch, nur nicht nach dem mappen mehr. Hier nochmal mein JS:

function setcss() {

alert('setcss wurde aufgerufen...');

if (screen.width == 1024) {
document.write("<link rel=stylesheet type=text/css href=ssfhkklein.css />");
}
if (screen.width > 1024) {
document.write("<link rel=stylesheet type=text/css href=ssfhkgross.css />");
}
if (screen.width < 1024) {
document.write("<link rel=stylesheet type=text/css href=ssfhkklein.css />");
}
}

WIe gsagt, ich bin ratlos und hoffe auf deine/eure Hilfe!
Thx Hans

hg.​beyer ·

Ich hab leider noch nicht raus gefunden was nun falsch ist, aber vlt. einen entscheidenden Hinweis. Und zwar steht in meinen Storagefolder unter
Inhalt [FILL IN] tx_templavoila_flex "Data Structure ERROR: Line 1: Invalid document end" Also guck ich natürlich was da so in der ersten zeile in meinem DS steht und das wär folgendes :

<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>

Nun weiß ich nicht, ob das was mit meinem CSS Problem zu tun hat, aber vlt ja doch. Hat jmd einen Plan ?
Thx Hans