InnerHTML mit Zope?

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
dusselmann
User
Beiträge: 70
Registriert: Donnerstag 28. Juli 2005, 12:47
Kontaktdaten:

Hi,

nutzt jemand innerHTML mit Zope? Folgender Code bringt (logischerweise) einen Compile-Error:

Code: Alles auswählen

<script type="text/javascript" metal:define-macro="main_js">
function showDetails(detailSpan, linkSpan, truefalse) {
  if (truefalse) {
    document.getElementById(detailSpan).className = "subnavigation-on";
    document.getElementById(linkSpan).innerHTML = '<a href="javascript:showDetails(\'' + detailSpan + '\',\'' + linkSpan + '\',' + !truefalse + ');"><img src="images/button-close.png" border="0" alt=""/></a>';
    //alert(document.getElementById("subnavSpan").className);
  } else {
    document.getElementById(detailSpan).className = "subnavigation-off";
    document.getElementById(linkSpan).innerHTML = '<a href="javascript:showDetails(\'' + detailSpan + '\',\'' + linkSpan + '\',' + !truefalse + ');"><img src="images/button-open.png" border="0" alt=""/></a>';
    //alert(document.getElementById("subnavSpan").className);
  }
  return;
}
</script> 
Wie kann ich das umgehen, ohne den gesamten Text zerstückeln zu müssen?

Thx & Gruß, Dussel
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

dusselmann hat geschrieben: nutzt jemand innerHTML mit Zope?
[...]
Wie kann ich das umgehen, ohne den gesamten Text zerstückeln zu müssen?
Hi Dussel!

Lagere deine JavaScript-Funktionen in eine ".js"-Datei aus und binde diese Datei in die Seite ein. Dann versucht Zope nicht das Skript wie eine Seitenvorlage zu parsen und findet auch keinen Fehler.

Code: Alles auswählen

<script type="text/javascript"
    src="http://gerold.bcom.at/plone_javascripts.js">
</script>
lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
dusselmann
User
Beiträge: 70
Registriert: Donnerstag 28. Juli 2005, 12:47
Kontaktdaten:

Hi,

muss ich die JS-Datei auch als PageTemplate anlegen? Wenn ja, dann habe ich das bereits und Zope versucht sie trotzdem zu parsen... Oder einfach als File? Wäre das dann evtl. auch der Grund für das Problem mit meinem CSS? (dass ich das als PageTemplate gespeichert hab)

Gruß, Dussel
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

dusselmann hat geschrieben:Hi,

muss ich die JS-Datei auch als PageTemplate anlegen? Wenn ja, dann habe ich das bereits und Zope versucht sie trotzdem zu parsen... Oder einfach als File? Wäre das dann evtl. auch der Grund für das Problem mit meinem CSS? (dass ich das als PageTemplate gespeichert hab)

Gruß, Dussel
Hi Dussel!

Wenn du keinen dynamischen Server-Code (ZPT, DTML,...) in dem CSS-File hast, dann solltest du es als einfaches File anlegen. Wenn du beim Anlegen schon die Dateiendung ".css" mit angibst, dann wird auch gleich der "Content Type" auf "text/css" gesetzt und beim Übertragen zum Browser auch dementsprechend im Header übergeben.

Gleiches gilt für dein JavaScript. Wenn du keinen dynamischen Server-Code im JavaScript verwenden musst --> einfaches File mit dem "Content Type" "application/x-javascript".

Um herauszufinden, was so alles im Header einer Datei an den Browser übertragen wird, kannst du dir im Firefox-Browser die "Web Developer Toolbar" installieren. Mit "Information/View Response Headers" bekommst du den Header angezeigt.

Mit Telnet kannst du dir den Header auch anschauen.

Bei CSS-Dateien sollte auch wirklich "text/css" und bei JavaScript-Dateien "application/x-javascript" an den Browser übergeben werden

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
dusselmann
User
Beiträge: 70
Registriert: Donnerstag 28. Juli 2005, 12:47
Kontaktdaten:

Hi,

cool, danke. Werd ich ausprobieren. Vielleicht ist das einfach der Grund, warum das CSS-File nicht erkannt wurde. Ich meld mich noch mal, obs geklappt hat oder nicht.

Thx & so long

Dussel
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

gerold hat geschrieben: Mit Telnet kannst du dir den Header auch anschauen.
Weil es so schön zum Thema passt. --> Hier findet man eine Anleitung, wie man mit Telnet den Header einer HTML-Anforderung bekommt.

http://gerold.bcom.at/kleiner_computerk ... tp_header/

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich nutze dazu ja am liebsten netcat und zum entwickeln auch gerne mal einen Sniffer, da ich gerne auch die Request-Header wissen möchte.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
dusselmann
User
Beiträge: 70
Registriert: Donnerstag 28. Juli 2005, 12:47
Kontaktdaten:

HA! genau das war's! jetzt funzt auch externes CSS-Include :) *freu*

Vielen Dank noch mal!!!

Cu, Dussel
Antworten