Archive for the ‘JavaScript’ Category.
23. Oktober 2009, 11:17
Nur weil ichs mir nicht merken kann und jedes mal wieder vergesse, dass man von hinten nach vorne vorgehen muss, damit das funktioniert, hier ein kurzes Beispielscript, mit dem man die Elemente eines Dropdown entfernt. In diesem speziellen Fall soll das erste Element bleiben und nur der Rest gelöscht werden, deshalb i > 0
-
function emptyCategorySelect(){
-
sel = document.getElementById("das_select");
-
opts = sel.getElementsByTagName("option");
-
for(i=opts.length;i>0;i--){
-
sel[i] = null;
-
}
-
}
11. September 2009, 08:23
Mit Schrecken habe ich festgestellt, dass der JavaScript ImageCropper von David Spurr im Firefox 3.5 nicht mehr funktionierte. Zum Glück hat schon jemand in der Bug Report Liste diesen Fehler beanstandet und zweifellos wird es demnächst ein Bugfix geben. Das Problem liegt einfach daran, dass das stylesheet nicht mehr dynamisch geladen wird.
Deshalb ist eine mögliche Lösung des Problems relativ einfach. Auf der Seite, wo man den cropper code inkludiert, fügt man einfach das Stylesheet hinzu:
-
<script type="text/javascript" src="scripts/cropper/cropper.js" language="javascript"></script>
-
<span style="color: #ff0000;"><link rel="stylesheet" type="text/css" href="scripts/cropper/cropper.css" /></span>
Und schon funktioniert das Script wieder einwandfrei.
21. Juli 2008, 09:54
Meine Meinung zu TinyMCE ist ja sowieso etwas zwiespältig. Nichtsdestotrotz muss ich damit arbeiten und stand neulich mal wieder vor der Frage, wie ich TinyMCE dazu bringe, nicht SÄMTLICHE Textareas umzuformatieren, sondern für einige eine Ausnahme zu machen. Nun, ich hätte da besonders hübsche Funktionen und Plugins schreiben können, aber warum umständlich wenns auch einfach geht? Im TinyMCE Ordner gibt's die Datei tiny_mce.js, wo man nur eine Zeile ändern muss, um das gewünschte Ergebnis zu erzielen.
-
var mode = tinyMCE.settings['mode'];
-
switch (mode) {
-
[...]
-
case "textareas":
-
var nodeList = document.getElementsByTagName("textarea");
-
for (var i=0; i<nodeList.length; i++) {
-
var elm = nodeList.item(i);
-
if(elm.className == "noedit") {continue;} //diese Zeile!!
-
[...]
-
}
-
[...]
-
}
Jetzt weist man einfach den Textareas, die TinyMCE ignorieren soll, die Klasse "noedit" zu, also so:
<textarea class="noedit"> irgendwas </textarea>
30. Januar 2008, 20:49
Die Ausgangslage: Mit JavaScript aktuell in den Content geschriebene Bilder, über denen bei Mouseover ein Tooltip angezeigt werden sollte.
Das Problem: Erzeuge ich ein Element mit document.createElement, kann ich diesem zwar mit onmouseover eine Funktion zuweisen, kann dieser Funktion aber keine Parameter mitgeben (man kann theoretisch schon, ist aber nicht zu empfehlen).
Die Lösung:
- im IE gibts ein globales Objekt "event"
- im Firefox wird einer funktion automatisch der event e mitgegeben.
- die unterscheidung macht man zum Beispiel über if(document.all)
-
if(document.all) //IE
-
{
-
e=event;
-
}
-
else //FF
-
{
-
;
-
}
- wenn man der funktion keine weiteren Parameter mitgeben kann, kann man die ID des auslösenden Elements abfragen
- im IE über e.srcElement.id
- im FF über e.target.id
-
if(document.all) //IE
-
{
-
e=event;
-
bild_id = e.srcElement.id;
-
}
-
else //FF
-
{
-
bild_id = e.target.id;
-
}
Ausprogrammiert und noch etwas genauer erklärt gibt's das hier.