Das war mir bisher nicht bewusst, wie wahrscheinlich vielen anderen auch nicht. Eine leere src-Angabe in einem img Tag verursacht einen Request und zwar auf das Verzeichniss in dem auch die eingebundene Seite liegt. Das Gleiche gilt für Bilder, die mit Javascript per new Image() erzeugt werden. Nähere Details beschreibt Nicholas C. Zakas auf seiner Seite.
Das Problem sind vor allem Server Skripte bzw. die darin enthaltenen Templates wo es schnell passieren kann, dass z.b. solche Einträge ein leeres src-Attribut erzeugen:
<img src="$variabel">
<img src="$variabel">
Es sollte zwar nicht kann aber u.U. vorkommen, wenn der Code einer dynamischen Seite nicht sauber programmiert wurde oder wenn ein Platzhalter vergessen wird.
Der einzige Browser, der sich davon nicht beeindrucken lässt ist Opera.
Vergleiche mit Javascript und ihre Merkwürdigkeiten. Eigentlich sollte man meinen, Vergleiche wären eine klare Sache. Entweder es ist etwas identisch oder nicht. Fertig!
So einfach ist es aber leider nicht. Da in Javascript eine automatische Typkonvertierung existiert, die zumindest in einen Sonderfall zu einem merkwürdigen Ergebnis führt. Entdeckt habe ich dieses Verhalten gestern in einem längeren Thread im selfhtml Forum. Dort war die Frage aufgetaucht, warum ("0" && "1") 1 ergibt (test). Im weiteren Verlauf stellten wir fest, dass die Vergleiche sehr seltsame Ergebnisse hatten. Z.b. der folgende Code:
var str ='0';
alert('str==true => '+(str ==true)+'n'+'!str==true => '+(!str ==true));
In den letzten Tagen hat die ganze Debatte um die bevorstehende Internetzensur noch mal richtig Schwung angenommen.
Schön zusammengefaßt, hat es die Süddeutsche. In dem Artikel werden noch mal alle Argumente, die gegen das Gesetz vorgebracht werden zusammengefaßt und auch die Kampagne im Internet richtig analysiert. Wie das aber auch in Hose gehen kann, zeigt dieser Kommentar in der Frankfurter Rundschau, von einem Politikprofessor(!). Dieser ist an Ahnungslosigkeit und Unterstellungen kaum zu überbieten. Da waren selbst die Aussagen von von Guttenberg in der Tagesschau harmlos. Das Internet wimmelt nach Auffassung des Profs. von Kommunisten und Anarchisten, die sich den Geschäftemachern in den Weg stellen und Kinderpornos verbreiten wollen:
Trotz gewaltigem Zuspruch bei der Internetpetiton gegen die Zugangssperre mißliebiger Inhalte, scheinen unsere gewähltem Volksvertreter diese Maßnahme sinnvoll zu halten, um ihre Zensurziele durchzusetzen. Laut Heise enthält der Entwurf nur kleine Änderungen im Detail und entspricht den fragwürdigen Vorgaben aus dem Hause der Familienministerin. Der AK Zensur hat darauf alle Gespräche mit dem SPD Verhandlungsführer abgebrochen
Sie planen, am Donnerstag die Büchse der Pandora zu öffnen. Daher sehen wir, die Internet-Community, keinen Grund mehr um weiter mit Ihnen zu reden. Alle weiteren Gespräche zu diesem Thema sagen wir hiermit ab. Dies gilt auch für Ihre Einladung für Mittwoch Nachmittag ins Paul-Löbe-Haus.
DNS Sperren sind nutzlos!
Das Prinzip, dass bei der Sperre eingesetzt werden soll, eine sogenannte DNS Sperre ist völlig ungeeignet um Internetseiten zu "sperren", es wird lediglich der normale Zugang über deutsche Provider etwas erschwert. Keiner der Konderporno Seiten besuchen will läßt sich davon aufhalten. Im gegenteil es würde mich wundern, wenn diese Leute nicht sowieso schon jetzt alles tun, um ihre Machenschaften zu verschleiern und dann wohl kaum von so einer Sperre beeindruckt sein werden.
Auf dieser Seite findet man z.b. eine Liste mit nicht zensierten DNS Servern, davon kann man einen auswählen und in den Netzwerkeinstellungen eintragen. Das ist (noch) völlig legal und ein Aufwand von wenigen Minuten, wenn man weiß wie sowas konfiguriert wird.
Das Schlimme bei dieser Art der Sperre ist, dass der Staat glaubt hier ein Mittel der Kontrolle der Inhalte des Internets in die Hand zu bekommen. Die ersten Äußerungen verschiedener Verbände, nach Wünschen von Sperrungen für ihre Zwecke sind auch schon vorhanden. Was kommt als nächstes?
Übrigens diesen Monat vor genau 60 Jahren ist 1984 von George Orwell das erste Mal erschienen. Ein Buch aktueller denn je.
Aktuell wird überall und dort, ein Video von Douglas Crockford gehyped, in dem dieser einige Aspekte von Javascript beschreibt. Der (englischsprachige) Vortrag unter dem Motto Javascript the good parts, geht tief in die Anwendung von Javascript.
Logisch! Douglas Crockford ist der Javascript Guru, insofern ist diese Aufmerksamkeit berechtigt. Aber seit gestern ist auf you tube ein weiterer hochinteressanter Javascript Vortrag im Google TechTalks Channel vorhanden. Unter dem Titel speed up your Javascript beleuchtet Nicholas C. Zakas die Interna von Javascript näher.
In dem einstündigen Vortrag erklärt Nicholas die Wirkungsweise von Javascript und wo mit diesem Wissen sich die Geschwindigkeit optimieren läßt.
Nachdem ich mich jetzt ein halbes Jahr lang mit dem neuen Firefox 3 rumgeschlagen habe und dabei vieles probiert, deinstalliert, installiert, Bookmarks gelöscht, about:config Tipps und was weiß ich noch alles, gemacht habe. Bin ich nun endlich auf die Lösung meiner Probleme mit diesem Browser gekommen.
Eine der Eigenschaften von Javascript, die sie von anderen Programmiersprachen abhebt, ist die prototypische Vererbung. Kurz gesagt bedeutet das, dass jedes Objekt eine Eigenschaft .prototype besitzt, von dem alle erzeugten Instanzen dieses Objektes erben (erben, ist nicht ganz korrekt. Es wird lediglich eine prototype chain aufgebaut, in der nach Funktionen gesucht wird. Aber das ist ein anderes Thema.).
Diese Art der Vererbung, hat Vorteile und auch Nachteile, mit denen sich etliche Artikel im Internet beschäftigen. Deshalb möchte ich hier auch gar nicht näher darauf eingehen, sondern eine Besonderheit dieser Methode zeigen, mit der es möglich ist, in Javascript vordefinierte Objekte um selbgeschriebene Funktionen zu erweitern.
Das String-Objekt bietet sich für Erweiterungen ganz besonders an, da es häufig zum Einsatz kommt und leider auch ein oft benötigte Funktionen nicht kennt.
Der Molmassenrechner berechnet die Molmasse einer chemischen Verbindung. Die Molmasse ist die Summe aller Element dieser Verbindung. Das Skript ermittelt dazu anhand der Formel die Anzahl der Atome und berechnet dann die gesamte Molmasse einer Verbindung.
Dabei werden alle sowohl runde Klammer, von Stoffgruppen, als auch eckicke Klammern, in Komplexverbindungen, berücksichtigt. Darüber hinaus ist auch eine Kristallwasserangabe möglich. Die Schreibweise muss der gängigen Nomenklatur entsprechen.
Syntax
Runde Klammern trennen eine Verbindungsgruppe. Eine optionale Zahl dahinter gibt an, wie häufig diese vorkommt. Kommt die Gruppe nur einmal vor, ist die Zahl überflüssig und muss nicht angegeben werden.
Eckige Klammern, für eine Komplexverbindung sind ebenfalls möglich. Innerhalb dieser können auch runde Klammern verwendet werden.
Mehrfach verschachtelte Klammern können in dieser Version nicht berechnet werden. Das Skript rechnet aber einfacher und exakter, als z.b. die auf Wikipedia verlinkten Molmassenrechner.
Ich hatte in der Vergangenheit ja schon einmal ein Skript vorgestellt, mit dessen Hilfe es möglich ist BB-Code in eine Textarea einzufügen. Um es einsetzen zu können, werden entsprechende Buttons benötigt, die z.b. oberhalb einer Textarea angezeigt werden und mit denen dann der Text entsprechend formatiert wird. Dazu habe ich das Skript erweitert und verbessert, so dass sich automatisch und leicht konfigurierbar, über eine Textarea, JS Buttons einfügen lassen.
Ich nutze den Code als Basis für Greasemonkey-Skripte, für einige Foren, die keine entsprechenden Buttons anbieten (z.b. das Forum auf Perlunity)
Das Skript ist relativ kompakt (knapp über 100 Zeilen mit Kommentaren) und funktioniert bei meinen Tests unter Windows XP, in allen gängigen Browser.