Javascript

Verwaltung der Favoriten im eigenen Web

Lesezeichen über ein Bookmarklet im Internet speichern

Es ist eine Krux: man speichert sich daheim eine Internet-Adresse in den Lesezeichen des Browsers und benötigt gerade diese später im Büro. Die Lösung des Problems ist, die Internet-Favoriten zentral irgendwo im Internet selbst zu speichern. Dienste wie del.icio.us haben vorgemacht wie es geht. Entstanden sind daraus richtige Link-Communities, in denen man seine Lesezeichen mit anderen teilen kann, etc. pp.

Aber warum muss man erst irgendwo Mitglied werden, wenn man ein eigenes Web besitzt, mit dem man mit ein wenig ASP- oder PHP-Code eine eigene Sammlung bewerkstelligen kann. Meist ist es doch einfach so, dass man gerade keine Zeit hat sich eingehender mit einer Seite zu beschäftigen und sich die Adresse schlicht für später aufheben möchte. Zudem bleibt immer noch die Frage, wie man Internet-Adressen ähnlich simpel wie im heimischen Browser speichern kann: mit einem Mausklick.

Am Anfang einer Lösung Marke Eigenbau steht erst einmal einen entsprechendes Web-Space mit Datenbankanbindung. In diesem Beispiel ist dies ein Microsoft Internet Information Server für die ASP und eine Microsoft SQL-Server-Datenbank. Genauso gut eignet sich jedoch auch ein Apache-Server mit PHP und MySQL. In diesem Fall muss nur der im weiteren Verlauf ndes Artikels beschriebene verarbeitende Code nach PHP umgesetzt werden.

Datenbank

Starten wir mit dem Entwurf der relativ schlichten Datenbanktabelle:

Tabellenfeld Beschreibung
FAV_ID Datensatzschlüssel (Autowert)
FAV_Title Titel der Seite
FAV_Address URL der Seite
FAV_AddDate Erstellungsdatum des Datensatzes

Verarbeitung der Internet-Adressen

Um die gewünschte Adresse nun in die Tabelle zu bekommen, eignen sich URL-Parameter am besten. Dazu werden der verarbeitenden Seite (hier: ASP) in der URL zwei Parameter mitgegeben, z.B.:

http://www.meinweb.de/bookmark.asp?title=Spiegel Online?
   address=http://www.spiegel.de

Im Code der ASP-Seite bookmark.asp müssen nun zunächst die beiden Parameter ausgelesen werden, um sie dann per ADO in die Tabelle zu schreiben:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<% @ LANGUAGE="VBScript" %>
<%
   '*** Parameter auslesen
   strTitle = Request.QueryString("title")
   strAddress = Request.QueryString("address")

   '*** Datenbankverbindung öffnen
   Set objConn = Server.CreateObject("ADODB.Connection")

   '*** Eintrag anlegen
   strSQL = "INSERT INTO tblFavoriten ( FAV_Title, FAV_Address, FAV_AddDate ) " & _
      "SELECT '" & strTitle & "' AS favTitle, " & _
      "'" & strAddress & "' AS favAddress, " & _
      "'" & Date() & "' AS favAddDate"
   objConn.Execute strSQL, , adExecuteNoRecords

   '*** Datenbankverbindung schließen
   objConn.close
   set objConn = nothing

   '*** Anzeigen der Ursprungsseite
   response.redirect(strAddress)
%>

</head>
<body></body>
</html>

Mehr als den abgebildeten Code braucht es gar nicht, denn auf dieser Seite soll nichts angezeigt werden, denn sie soll lediglich ja die übergebenen Parameter verarbeiten. Im Anschluss an den Eintrag in die Tabelle wird die Lesezeichen-Seite wieder aufgerufen.

Die "Ein-Klick"-Lösung

Entscheidend bei dieser Lösung ist nun wie die o.g. ASP-Seite aufgerufen wird. Anstatt jedesmal mühsam die komplette Adresse der Seite inkl. Parameter einzutippen, greifen wir auf Javascript zurück. Wie in einem anderen zerbit.de-Artikel beschrieben (siehe "verwandte Artikel"), kann man kleine Javascripte als Lesezeichen im Browser speichern, sog. Bookmarklets oder Favlets. Diese Technik machen wir uns hier zunutze. Die "Adresse" unseres Bookmarklets lautet:

javascript:location.href='http://www.meinweb.de/bookmark.asp?
   title='+escape(document.title)+'&address='+escape(location.href);

Der Übersichtlichkeit halber sind die beiden Scripte jeweils am Ende einer Anweisung (Semikolon) und am Fragezeichen umgebrochen. Im Bookmarklet jedoch muss alles in einer Zeile stehen.

Der Javascript-Einzeiler im einzelnen: Mit dem Setzen von location.href wird der Browser veranlasst unsere ASP-Seite inkl. Parameter anzusurfen. Die Parameter werden mit der Funktion escape in ASCII-Zeichen umgewandelt, um sicherzustellen, dass z.B. Umlaute richtig verarbeitet werden. Als Lesenzeichentitel dient hier der Titel des aktuell im Browser angezeigten Dokuments (document.title). Die Adresse der zu speichernden Seite wird mit dem aktuellen Inhalt von location.href festgelegt.

Optimierung des Bookmarklets

Nun haben viele Web-Seiten keine besonders sprechenden Dokumententitel. Oftmals steht dort auf allen Seiten lediglich der Name der Seite, "Neue Seite 1" oder schlimmstenfalls gar nichts, was unsere Lesezeichenbeschreibung recht sinnlos macht bzw. das Script mit einer Fehlermeldung abbrechen lässt. Aus diesem Grunde erweitern wir das Javascript so, dass ein auf der aktuell angezeigten Seite markierter Text, z.B. eine Überschrift, als Titel des Lesezeichens übernommen wird.

Um eine Markierung per Javascript zu ermitteln gibt es je nach Browser unterschiedliche Umsetzungen. Firefox und Mozilla z.B. verwenden die Funktion document.getSelection(), der Internet Explorer widerum benutzt die Eigenschaft document.selection.createRange().text. Der neue Opera 8.5 hingegen kommt mit beiden Varianten klar; die alte Opera-Version 8.0 hingegen nur mit document.selection(). Ein sehr gute Erläuterung des Themas gibts es unter http://www.quirksmode.org/js/selected.html (siehe Abbildung).

Im Folgenden ist der Code für die Varianten Firefox und Internet Explorer dargestellt, ja nachdem welchen Browser Sie einsetzen, können sie das ein oder andere Script verwenden.

Firefox/Mozilla

javascript:
   x=document.title;
   y=document.getSelection();
   if(y){t=y}else{t=x};
   location.href='http://www.meinweb.de/bookmark.asp?
   title='+escape(t)+'&address='+escape(location.href);

Internet Explorer

javascript:
   x=document.title;
   y=document.selection.createRange().text;
   if(y){t=y}else{t=x};
   location.href='http://www.meinweb.de/bookmark.asp?
   title='+escape(t)+'&address='+escape(location.href);

Der Übersichtlichkeit halber, sind die Scripte wie oben umgebrochen. Im Bookmarklet jedoch muss wiederum alles in einer Zeile stehen.

Für Menschen, die es gerne etwas bequemer haben, wollen wir nun noch eine Variante erstellen, die Browser-unabhängig ist. Dazu muss eine verschachtelte Entweder/Oder-Abfrage in verkürzter Schreibweise (mit ? und :) in das Script eingebaut werden, die ermittelt, mit was der gerade verwendete Browser denn zurecht kommt. Zusätzlich werden in einer weiteren Zeile mit der Methode replace() aus dem markierten Text noch alle Sonderzeichen herausgefiltert, die sich eventuell störend auswirken könnten. Um nicht Gefahr zu laufen zuviel Text als Titel zu speichern, wird der Text zusätzlich noch auf 75 Zeichen gekürzt und mit drei Punkten kenntlich gemacht, dass eigentlich mehr Text übernommen werden sollte:

javascript:
   x=document.title;
   y=''+(window.getSelection?window.getSelection():
   document.getSelection?document.getSelection():
   document.selection.createRange().text);
   y=y.replace(/["!?;:.,]/g, "");
   if(y){t=y}else{t=x};
   if(t.length>75){t=t.substring(0,75)+'...'};
   location.href='http://www.meinweb.de/bookmark.asp?
   title='+escape(t)+'&address='+escape(location.href);

Eine weitere Variante ist, dass jedes Mal eine Eingabemaske erscheint, in dem man den Titel des Lesezeichens vor dem Speichern noch einmal überarbeiten kann, wenn man denn möchte:

javascript:
   x=document.title;
   y=''+(window.getSelection?window.getSelection():
   document.getSelection?document.getSelection():
   document.selection.createRange().text);
   y=y.replace(/["!?;:.,]/g, "");
   if(y){s=y}else{s=x};
   r=prompt('Lesezeichentitel:', s);
   if(r){t=r}else{t=s};
   if(t.length>75){t=t.substring(0,75)+'...'};
   location.href='http://www.meinweb.de/bookmark.asp?
   title='+escape(t)+'&address='+escape(location.href);

Fazit

Speichert man sich nun das Bookmarklet in den Favoriten und nennt es z.B. "Aktuelle Seite zu Web-Favoriten" hinzufügen, kann man eine interessante Seite mit einem Klick in die Datenbanktabelle übernehmen. Bleibt nur noch die Aufbereitung der Daten auf einer entsprechenden ASP-Seite und man hat en effektives System zur Speicherung von Lesenzeichen im Internet - ohne Mitgliedszwang.

kick it on dotnet-kicks.de AddThis Trackback-Url...

Schlagworte

188 Kommentare bislang...

  • Secondly you will also want to
    Longchamp UK get as much education under your belt as Longchamp Handbags possible. Throughout your education as a photographer Longchamp Outlet you should also be taking as many photographs Longchamp Handbags as possible to help build your Longchamp Outlet portfolio. You will need to ensure your photography portfolio Longchamp Online stands above the rest by paying extra special baskets Isabel Marant attending to detail. Look at the book itself, the paper it's printed Isabel Marant Online on, the font of descriptions, your borders, your themes, picture Isabel Marant Boots sizes, colors, layout and so on. Do not simply fill a scrap book or photo album with Isabel Marant Online photographs. Once finished, you should be able to walk Isabel Marant Boots away from your portfolio and be impressed with your own Isabel Marant Online work, which is
    macpldtim maczjsdgpl not easy task for Isabel Marant Sneaker many photographers, as most of them are their own worst critics.
    188
    Tods Sale : Donnerstag, 10. Mai 2012 07:04
  • air max classic nike ?C'est la femme de ménage de votre maison? On dirait bien et mignon! Capable de ma?triser le troisième ordre ame tigre froide profonde de la bête à faire escorter, sans doute pour augmenter le territoire spirituel de la division ame? Gee, c'est vraiment digne de sèche Tianshan Seiko, mais deux d'entre vous un peu trop salissant Vallée du sang viennent! Cette année, car je ne sais pas décédé un certain nombre de la de la réparation des armes ma?tre spirituel. vous un seul est d'élever l'esprit tout au long de la jeune fille, on est tout simplement incapable de pratiquer. seulement deux personnes seulement, en fait aussi oser entrer? sur une, puis ce Mai-Ling herbe, vraiment utile sur le jeune pour vous? "

    Falun est heureux d'oeil avec satisfaction vu de la neige, et puis est impitoyablement réprimandé, et enfin, en louchant ses yeux, des mains fortes garder tirant les cas, il a tiré dans le groupe des arts martiaux.

    Approchez-vous de, vers ce que Manhattan doux sourire: ?Frère Yat, vous pouvez vous souvenir étaient défensives Jeune Cette co?ncidence a, en fait dans la vallée de l'intérieur du sang, mais aussi rencontré l'ennemi dans le collège précédent, il doit aller à l'intérieur?. l'exploitation minière cette veine Lingcao, frères que vous avez entendu parler? "

    étaient de garder rempli de regret, derrière le Falun heureux. Soigneusement examiné un groupe d'arts martiaux, ne sont pas sombres peur.

    Huit personnes, en plus de Falun Manhattan est heureux à deux gourou, les six autres sont en fait des secrets de culture martiale. Il suffit de peu importe à juste tuer les dents des loups sont propres. Comme un aguerris, c'est juste que l'élan agressif pour non-Guerrier inhabituelle peut être comparé.
    187
    air max classic nike : Donnerstag, 3. Mai 2012 23:00
  • Wer eine eigene Web-Seite besitzt, kann sich relativ schnell eine zentrale Internet-Lesezeichensammlung bauen und Web-Adressen dort mit
    186
    seo service indonesia : Dienstag, 24. April 2012 10:50
  • lhb100458 UUUDans les yeux de la plupart des gens, Michael Jordan est le plus grand joueur de basket-ball et son chaussure jordanmagnifique doté de carrière dans le basket légendaire, ainsi que l'énorme influence pour le jordan pas cher sport est inévitable, afin que les gens l'a poussé à Dieu autel. Elégante, la combinaison parfaite de la vitesse, la force, richesse artistique
    185
    cheap jordan shoes : Freitag, 20. April 2012 09:46
  • Cheap louis vuitton uk wholesale offers a variety of options to satisfy your needs. Some new ones even has fashionable styles fold over flap to disguise the snap closure and a draw string is added for a convenient closure.Certainly, nobody would argue, simply because several long-time wallet customers can agree with the fact, louis vuitton bags for sale delivers some thing now we have consistently yearned with regard to,as well as which usually we tend to despite the fact.louis vuitton bags uk. If you need to be stylish but want to save your professional look you can use tote bags. Bag is something that many girls select because of its ability to add sophistication and style to any outfit. Louis Vuitton Purse Buy Online. Louis Vuitton Purses Patent Leather. For over 50 years Chanel purses have represented luxury and fashion and are timeless. A Chanel handbag can also be considered an asset and is something that can be handed over to future generations.<br/>
    184
    louis vuitton uk : Samstag, 14. April 2012 12:04

Dein Kommentar hierzu...


Kommentar-Feed für diesen Beitrag
Gravatare werden unterstützt .:. eMail-Adressen werden nicht veröffentlicht
 

RSS-Feed

Die URL des Standard-Newsfeed von zerbit.de lautet:

http://zerbit.de/rssfeed.aspx

Login


 

 

Statistik



kürzlich kommentiert

Artikel 47

  • Datum: 26.10.2005
    Kategorie: Javascript
    Zugriffe: 4.561
    Kommentare: 188
    Trackbacks: 0

Letzte Beiträge

Kategorien

Buttons & More

Blog-Roll

Banner Piraten-Partei