Smarter SweetTitles – JavaScript Fading Tooltips adjusted

Dustin Diaz hat mit SweetTitles eine sehr elegante Lösung zur verbesserten Darstellung von Tooltips erstellt. Ich habe das JavaScript jetzt mal probeweise auch auf dieser Site eingesetzt und dabei noch mal ein klein wenig an meine Bedürfnisse angepasst.

Zum einen unterdrücke ich die stets erfolgende Ausgabe des Protokoll-Prefix “http://”. Die so gewonnen 7 Zeichen schlage ich auf die URL-Ausgabe drauf, so das ich statt 25 Zeichen nun 32 Zeichen der URL anzeigen kann. Ferner unterdrücke ich die URL-Ausgabe ganz, wenn die URL “meine” Domain oder “static.flickr.” oder “javascript:” enthält. Es sieht einfach eleganter aus, wenn eine URL nur dann angezeigt wird, wenn es sich um einen externen Link handelt. Das Unterdrücken der URL-Ausgabe bei Vorhandensein von “JavaScript:” sorgt dafür das Items, die mit JavaScript belegt sind nicht mit einem SweetTitle versehen werde. Gerade bei aufklappbaren Listen (z.B. Kategorieliste per WP-dTree) würde es andernfalls sehr störend wirken.

Da im Original immer eine URL ausgegben wird, gibt es auch immer einen Tooltipp. Bei meiner Variante kann es nun aber vorkommen, dass die URL nicht ausgeben wird. Wenn dann nun noch der Tooltipp leer ist, muss das natürlich erkannt werden so dass in diesem Fall kein Tooltipp ausgeben wird.

Folgende kleine Änderungen am Quellcode /wp-content/themes/#your_theme_name#/js/sweetTitles.js sorgen für dieses geänderte Verhalten:

[JAVA]
//…
tipShow : function() {
var scrX = Number(this.xCord);
var scrY = Number(this.yCord);
var tp = parseInt(scrY+15);
var lt = parseInt(scrX+10);
var anch = this.checkNode();
var addy = ”;
var access = ”;
if ( anch.nodeName.toLowerCase() == ‘a’ ) {
addy = (anch.href.length > 32 ? anch.href.toString().substring(0,32)+”…” : anch.href);
addy = addy.replace(‘http://’,”);
if ( !addy.search(‘lars-schenk.’)) addy = ”;
if ( !addy.search(‘static.flickr.’)) addy = ”;
if ( !addy.search(‘javascript:’)) addy = ”;
var access = ( anch.accessKey ? ‘ [‘+anch.accessKey+’] ‘ : ” );
} else {
addy = anch.firstChild.nodeValue;
}
this.tip.innerHTML = “

“+anch.getAttribute(‘tip’)+”“+access+addy+”

“;
if ( parseInt(document.documentElement.clientWidth+document.documentElement.scrollLeft) < parseInt(this.tip.offsetWidth+lt) ) { this.tip.style.left = parseInt(lt-(this.tip.offsetWidth+10))+'px'; } else { this.tip.style.left = lt+'px'; } if ( parseInt(document.documentElement.clientHeight+document.documentElement.scrollTop) < parseInt(this.tip.offsetHeight+tp) ) { this.tip.style.top = parseInt(tp-(this.tip.offsetHeight+10))+'px'; } else { this.tip.style.top = tp+'px'; } if (addy || anch.getAttribute('tip')) this.tip.style.visibility = 'visible'; this.tip.style.opacity = '.1'; this.tipFade(10); } //... [/JAVA] Bekannte Probleme: Wenn SweetTitles ein Title-Attribut in einem Anchor-Tag rendert, welches um ein Image-Tag gelegt ist, un dieses Image-Tag ein Alt-Tag enthält, so wird beim IE der intrinsinc Tooltipp zusätzlich zum SweetTitle-Tooltipp gerendert. Daher sollten bei einem verlinkten Image-Tag das ALT-Attribut stets mit alt=”” angegeben werde.

6 comments Write a comment

  1. Pingback: Lars-Schenk.com » WordPress Plugin für Flickr und Lightbox

  2. hallo ,

    ich hab mal deinen kommentar bzw deine veränderung in sweet titels eingebaut nur leider zeigt er bei mir immernoch die ganzen url der seiten an kannst du mir mal helfen .

    was ist static.flickr bin leider noch Anfänger was das Betrift .

  3. Hallo Michel,
    das entfernen des Protokollprefix geht via
    addy = addy.replace(‘http://’,”);
    Für meine Homepage und Flickr wird ebenfalls die URL rausgekürzt. Schaue ggf. unter http://www.flickr.com was dieser Image-Hosting-Service macht. Bitte habe Verständnis, dass ich keinen kostenlosen Support bei der Integration in Deine Website leisten werde.

  4. danke für deine Antwort .

    vieleicht bist du aber so net und sagst mir noob mal wie ich das machen muss damit das script image einblendet.

    hab leider das problem das wenn ich in mein forum es so eingebe

    [u r l=http://][img]url zum bild[/img][ / u r l]
    !Die Zeichen sind mit Leerstellen, weil dieses Forum sonst den BBCode umwandelt!

    geht es leider nicht und ich versuche schon tagelang ein verlinktes bild als tooltip damit zu erstellen.

    das einzige was geht aber doch recht dumm aussieht ist es in html gemischt mit bbcode einzugeben

    so geht es

    [code]hallo[/code]

    wie muss ein string in bbcode aussehen damit das geht ?

    bitte bitte ich suche schon solange , ich weiss das du dein wissen nicht umsonst preisgibts aber vieleicht machst du ja mal eine ausnahme.

    viele grüsse

  5. Es tut mir leid, ich habe keine Erfahrungen in Bezug auf SweetTitles-Integration in die von Dir verwendete Foren-Applikation und kann mich daher nur wiederholen: “Bitte habe Verständnis, dass ich keinen kostenlosen Support bei der Integration in Deine Website leisten werde.” Unter Support verstehe ich eine Dienstleistung die auch für mich mit Aufwendungen verbunden ist und nicht wie von Dir angenommen als das Preisgeben einer bereits vorhandenen Information.
    Solltest Du zu einer Lösung kommen, kannst Du diese hier gerne publizieren mit genauen Hintergrund-Informationen, damit auch ggf. andere Suchende hier fündig werden. Viel Erfolg.

  6. Pingback: Tooltips verbessern (Sweet Titles) | funkygog Blog