Javascript in Nodes?
Eingetragen von travel-pictures (156)
am 20.02.2009 - 08:03 Uhr in
am 20.02.2009 - 08:03 Uhr in
Hallo,
ich möchte ein Panorama in einem Node darstellen. Dazu gibt es ein passendes Javascript, das ich innerhalb des Nodes ausführen muss. Obwohl ich auf "Full HTML" gestellt habe, scheint das Script nicht richtig ausgeführt zu werden. Nun bin ich auf der Suche. Aus meiner Sicht gibt es drei Möglichkeiten:
a. Drupal kann kein JavaScript in Nodes (und ich benötige ein Modul dafür)
b. meine lokale MAMP-Installation spinnt und produziert den Fehler
c. es gibt einen Fehler im Script
Den Punkt c möchte ich ausschließen, da ich noch in der Testphase bin und ein funktionierenes, bereits getestetes Script in den Node kopiert habe.
Hat jemand eine Idee?
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich habe auch schon
am 20.02.2009 - 08:22 Uhr
Ich habe auch schon häufiger festgestellt, daß JS mit der FULL HTML Eingabe nicht gezeigt wird. Abhilfe schafft bei mir und bei einigen anderen im Forum die Aktivierung des PHP Modules und dann die Auswahl PHP Modus als Eingabeformat.
Adsense wird auf meinen Seiten beispielsweise nur so angezeigt. Warum das so ist? Keine Ahnung, aber es funktioniert!
Drupal 7 Screencasts in deutsch!
Script anders aufrufen?
am 20.02.2009 - 08:35 Uhr
Muss ich das Javascript dann irgendwie anders aufrufen, wenn ich den PHP-Modus wähle?
---
Hobby: travel-pictures.net - NEU: 360 Grad Panoramen aus Afrika!
Company: Konzept360
---
Hobby: travel-pictures.net - NEU: 360 Grad Panoramen aus Afrika!
travel-pictures
am 20.02.2009 - 09:21 Uhr
Muss ich das Javascript dann irgendwie anders aufrufen, wenn ich den PHP-Modus wähle?
eigentlich nicht. Wenn Du nen WYSIWYG Editor wie den FCK nutzt, dann packst Du Deinen JS Code einfach in den Quelltext.
Drupal 7 Screencasts in deutsch!
drupal_add_js
am 20.02.2009 - 10:27 Uhr
Wenn Du den php-Eingabefilter verwendest, kannst Du das JS auch gleich mit drupal_add_js() einbinden. Dann kannst Du den Code auch in eine externe Datei auslagern und musst bei Anpassungen nicht immer die Node editieren (und Du kannst es auch in ganz vielen Nodes verwenden).
Eine weitere Möglichkeit wäre die Einbindung der Javascript-Datei abhängig von der URL oder vom Inhalt:
<?php
function phptemplate_preprocess_page(&$vars) {
$vars['tabs2'] = menu_secondary_local_tasks();
// Hook into color.module
if (module_exists('color')) {
_color_page_alter($vars);
}
/**
* build template name based on path.
*/
$alias = drupal_get_path_alias($_GET['q']);
if ($alias != $_GET['q']) {
$template_filename = 'page';
foreach (explode('/', $alias) as $path_part) {
$template_filename = $template_filename . '-' . $path_part;
$variables['template_files'][] = $template_filename;
}
}
if (strpos($vars['content'], 'Inhalt, bei dem das Skript benötigt wird') || $alias = 'dingens') {
drupal_add_js(drupal_get_path('theme', 'garland') .'/scripts/my_custom.js', 'module');
drupal_add_js("$(function() { $('h2').css({background: #cecece; padding: 4px; -moz-border-radius: 5px;})});", 'inline');
$vars['scripts'] = drupal_get_js();
}
}
?>
Damit steuerst Du über die template.php, wann das Skript verwendet werden soll und musst es nicht direkt in ide Node packen.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Javascript Code einfügen
am 22.03.2009 - 01:33 Uhr
Ich habe versucht ein Javascript Code per Block einzufügen. Ich habe das Format php code benutzt, allerdings scheint es nicht zu funktionieren. Gibt es noch eine andere Möglichkeit?
Benutze Drupal 6.10.