Javascript als Quelltext einbinden
am 17.01.2011 - 19:21 Uhr in
Hallo,
ich benutze den CKEdidor und möchte über Quelltext ein einfaches Javascript einbinden. Da wird aber nichts angezeigt.
Was ich für Javascipt gefunden habe, finde ich ein wenig verwirrend, kann mir jemand helfen?
--------------------
var bild = new Array();
var i = 1;
var j = 1;
var anzahl_bilder = 15;
var anfang_name = 'bilder/bild'
var ende_name ='.jpg'
while (anzahl_bilder > j) {
bild[j]=[anfang_name+j+ende_name]
j++;
}
function bilder_anzeigen() {
if (i < bild.length) {
document.getElementById('dummy').src=bild[i];
document.getElementById('dummy').hight = 200;
document.getElementById('dummy').width = 267;
i++;
}
else {
i = 1;
}
setTimeout('bilder_anzeigen()', 2000);
}
bilder_anzeigen();
-----------------
- Anmelden oder Registrieren um Kommentare zu schreiben
Das kannst Du vergessen
am 17.01.2011 - 19:39 Uhr
mit dem CKEditor ein javascript einzufügen!
Je nach Eingabefilter fügt der HTML TAGS
wie DIV P BR ,etc. ein und in diesen
ist dan dein javascript eingeschlossen.
Du könntest als Eingabefilter PHP Code
wählen und mit dem print Befehl das
Javascript rausschreiben.
Allerdings ist das auch kein guter weg
und muss nicht funktionieren.
Es ist nämlich schwer zu sagen:
ist der HTML Tag mit der ID "dummy" schon gerendert
Normalerweise gehört das Skript in eine *.js Datei
oder in ein selbst erstelltes View Template.
Schau mal nach wo in Deinem Theme die js Dateien geladen werden.
Grundsätzlich kannst Du aber vergessen dass Du mit einem
WYSWYG Editor Javascript einzugeben und auszuführen.
Ein WYSWYG Editor mach was er soll:
Er rormatiert die Ausgabe!
LG
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
js Scripte modifizieren
am 18.01.2011 - 13:01 Uhr
Hallo zusammen,
ich habe auch gerade das Problem, dass ich js an einer Stelle in einem Beitrag einbinden möchte.
Der hintergrund ist:
Ich möchte eigentlich ein Bild in ein Betrag einbinden und dieses kleine Bild via Klick in einer Lightbox öffnen.
Lightbox2 als Modul gibt es derzeit leider noch nicht in Drupal 7.
Daher wollte ich ein jQuerry Script nutzen und eine Art Overly auf das Bild legen, welches dann das Script aufruft.
Ich habe noch keine Erfahrung mit Drupal und bin etwas erschlagen mit den Informationen, welche ich im Netz finden kann.
An welcher Stelle kann ich js einbinden und wie gehe ich dabei vor?
Wie rufe ich das Script dann auf?
Danke für Eure Hilfe
Chrom
Hi,
am 18.01.2011 - 13:22 Uhr
die Script sind sehr oft abhängig vom Theme.
schau mal im Ordner deines Themes
nach .info
dort kannst Du mit
scripts[all]=.js
deine scriptdatein eingeben.
Das Theme rendert die Scripts dann
sehr weit oben im HTML Code.
Ausführen ist wieder eine andere Sache.
Da kommt es darauf welches View, Modul,
Panel, etc. dein Element rendert.
LG
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Danke erstmal!
am 18.01.2011 - 13:54 Uhr
Hi nochmal,
die Script sind sehr oft abhängig vom Theme.
schau mal im Ordner deines Themes
nach .info
Was meinst Du mit abhängig vom Theme?
Da ich ein Standard-Theme nutze habe ich die .info gefunden. Dor sind leider keine Scripte eingebunden, nur Stylesheets:
php name = Bartik
description = A flexible, recolorable theme with many regions.
package = Core
version = VERSION
core = 7.x
stylesheets[all][] = css/layout.css
stylesheets[all][] = css/style.css
stylesheets[all][] = css/colors.css
stylesheets[print][] = css/print.css
...
dort kannst Du mit
scripts[all]=.js
deine scriptdatein eingeben.
Das Theme rendert die Scripts dann
sehr weit oben im HTML Code.
OK, stehen mir dann die eingebundenen Scripe auf allen Seiten zur Verfügung oder nur auf einzelnen Seiten.
Woran erkenne ich dann, auf welchen Seiten sie zur Verfügung stehen?
Ausführen ist wieder eine andere Sache.
Da kommt es darauf welches View, Modul,
Panel, etc. dein Element rendert.
Kannst Du mir sagen, was Du mit rendern meinst? Wann wird gerendert?
Danke,
LG Chrom
Zitat: Hyp1 schrieb dort
am 18.01.2011 - 14:05 Uhr
Hyp1 schrieb
dort kannst Du mit
scripts[all]=.js
deine scriptdatein eingeben.
Das Theme rendert die Scripts dann
sehr weit oben im HTML Code.
Die dort eingebunden Skripte stehen auf jeder
Seite zur Verfügung.
Wie gerendert wird, damit meine ich folgendes:
Ich gehe davon aus Du möchtest mit javascript
auf ein HTML Element zugreifen (DIV, IMAGE, P ,FORM etc).
Welche Drupal Komponente rendert diesen TAG oder diese FORM.
Ist es eine View kannst Du das das Skript in ein View Template reinpacken
dann ist es nur in dieser View vorhanden.
Ist es ein Node dann kannst Du ein Node Template nehmen.
LG
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Scripte rendern
am 18.01.2011 - 14:35 Uhr
Also es ist ein normales Inhaltselement (Artikel), welchen vie Modulekombi CKEditor und CCK ein paar Bilder eingebunden wurde.
Diese sind via img Tag eingebunden.
<img alt="" src="/Drupal/sites/default/files/Unbenannt_0.jpg" style="width: 100px; height: 82px; float: left;" />
Wie kann ich nun ermitteln, welche Komponente diesen Tag rendert. Da es ja eine Artikel ist, wird ja auch einen neues Node erstellt.
Wird es dann vielleicht dabei gerendert?
Wenn ich also ein entsprechendes Template finde, dann schreibe ich den js code in diese Template.php.
Demzufolge brauche ich keine extra js-Datei erstellen, korrekt, und wiederum brauche ich diese dann auch nicht in der .info-Datei verweisen!?
Ist das soweit richtig?
Dnake, Chrom
Ja das ist korrekt, ein
am 18.01.2011 - 15:10 Uhr
Ja das ist korrekt,
ein Artikel ist typischerweise ein Node.
Du kannst es im Node Template deines Themes machen.
LG
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Sehr gut, vielen Dank. Wenn
am 18.01.2011 - 16:41 Uhr
Sehr gut, vielen Dank.
Wenn ich nun eine Lighbox verwende, welche eine einfache js Skript ist (also kein Modul für Drupal),
dann ist diese in einer (oder mehrere) js-Dateien geschrieben.
Ist es möglich, auf ein solches Skript in der node.tpl.php zu verweisen und eine Funktion daraus aufzurufen?
Muss ich dies dann in der Funktion zum rendern des Content machen?
<div class="content clearfix"<?php print $content_attributes; ?>>
<?php
// We hide the comments and links now so that we can render them later.
hide($content['comments']);
hide($content['links']);
print render($content);
?>
</div>
Danke noch mals!
Chrom
Das kannst Du vergessen
am 18.01.2011 - 18:20 Uhr
Hi, danke für die schnelle Antwort, ich schau mal was ich draus mache.
Grüße