Der Internet Explorer und die indexOf()-Methode
Die Methode indexOf()
für das Array-Objekt ist erst seit Ende 2009 standardisiert. Bis dahin war die Methode auch noch nicht im Internet Explorer (hier IE 8) implementiert; in fast allen anderen Browsern schon. Die Methode kann man jedoch nachträglich selbst in sein Script einfügen um, die Funktionalität auch für den Internet Explorer <= 8 zu gewährleisten.
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
"use strict";
if (this == null) {
throw new TypeError();
}
var t = Object(this);
var len = t.length >>> 0;
if (len === 0) {
return -1;
}
var n = 0;
if (arguments.length > 0) {
n = Number(arguments[1]);
if (n != n) { // shortcut for verifying if it's NaN
n = 0;
} else if (n != 0 && n != Infinity && n != -Infinity) {
n = (n > 0 || -1) * Math.floor(Math.abs(n));
}
}
if (n >= len) {
return -1;
}
var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
for (; k < len; k++) {
if (k in t && t[k] === searchElement) {
return k;
}
}
return -1;
}
}
(via)
Linkhub #7
- Modern Web Development – Part 1 – The Webkit Inspector
Ein ausführlicherer Einblick in den Webkit Inspector. - Understanding JavaScript OOP
Was ist Objektorientiertes Programmieren in JavaScript und wie funktioniert das. - OO JS in 15mins or Less
Noch mal was zur Objektorientierung in JavaScript. aber diesmal ganz kurz. - How To Build A Real-Time Commenting System
Sehr ausführlicher Artikel im Smashing Magazine darüber, wie man sich selbst ein Kommentarsystem zusammen baut. Auch wenn man das nicht vor hat, ist der Artikel aufschlussreich. - PHP Database Access: Are You Doing It Correctly?
Kurze Einführung die PHP PDO API für Leute wie mich, die bisher alles mit dermysql
odermysqli
API gemacht haben. - gmaps.js – google maps api with less pain and more fun
Ein Wrapper JS für die GMaps-API. Hätte ich vor zwei Jahren gut gebrauchen können.
Premium Content @Homeoffice
Quick & Dirty: Shellscript »batchzip«
Für den täglichen Bedarf an wiederholenden Aufgaben schreibt man sich ja oft kleine Shellscripte. Hier hab ich ein eines, welches Dateien gleichen Namens aber unterschiedlicher Dateiendung zusammen in ein Zipfile packt.
Kann man unter anderem gut gebrauchen, wenn man Projektdateien hat. die ja oft projekt.txt, projekt.docx, projekt.psd, projekt.pdf etc. heißen.
Das Script sollte auf jedem System mit Standard-Shell und zip und rm funktionieren.
Herunterladen kann man sich das auch hier: batchzip
#!/bin/sh # # Name: batchzip # Description: This script zips files with same basename (ignoring the extension). # Author: Tommy Schmucker # Created: 2012-05-13 # Modified: 2012-05-16 # Version: 0.3 #
usage() { cat << EOF
This script zips files with same basename (ignoring the extension).
usage: $0 [-h] [-r] [-d directory]
-h Show this message -d Input directory -r Remove original files EOF }
dir=`pwd` rm_orig=0 me=`basename $0`
zip=/usr/bin/zip rm=/bin/rm
[ -x $zip ] || { echo "No such executable: $zip"; exit 1; } [ -x $rm ] || { echo "No such executable: $rm"; exit 1; }
while getopts "hrd:" option; do case $option in h) usage exit 1 ;; r) rm_orig=1 ;; d) dir="$OPTARG" ;; ?) usage exit ;; esac done
[ -d "$dir" ] || { echo "$in_dir is not a directory, exiting"; exit 1; } dir="${dir%/}"
for this_file in "$dir"/*; do basename=$(basename "$this_file") name=${basename%.*} if [ ! -h "$this_file" ] && [ "$basename" != "$me" ]; then $zip -j "$dir"/"$name".zip $this_file if [ "$rm_orig" == 1 ]; then $rm "$this_file"; echo "$basename removed." fi fi done
Mit JavaScript prüfen, ob ein CSS media query ausgeführt wurde
CSS:
@media (min-width: 45em) {
body:after {
content: 'widescreen';
display: none;
}
}
JavaScript:
var size = window.getComputedStyle(document.body,':after').getPropertyValue('content');
if (size == 'widescreen') {
// go nuts
}
(via: bricss.net)
Die genialsten Lösungen sind immer die einfachen. Auf die kommt man aber nie selbst.
Edit: Funktioniert wohl derzeit nur im Chrome/Chromium (Version 18 und 19 getestet). Siehe auch Kommentare.
Linkhub #6
- Timeline
Beautifully crafted timelines that are easy, and intuitive to use. - Startups, this is how design works
Wie funktioniert Design. Eine kurze Einführung für Nicht-Designer - JavaScript caching framework
Ein JavaScript caching framework für den Browser. - An introduction to jQuery Deferreds
Eine kurze Einführung in die Deferreds von jQuery. - mag.js
Ganz neu: mag.js – das JavaScript-Magazin. - jQuery File Upload
Ein schicker File-Uploader für jQuery - Learn & Master jQuery
An overview of resources about learning and mastering jQuery.