Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Smart Tags auf die Finger geschaut

Geschrieben von: Christoph Wille
Kategorie: ASP Tricks

This printed page brought to you by AlphaSierraPapa

Das Smart Tags Feature des Internet Explorer 6 ließ die Wogen hoch gehen, vor allem, da dadurch "hinterrücks" am Content einer Web Site herumgebastelt werden kann. Da nun einige Zeit seit dieser Debatte ins Land gegangen ist, sehen wir uns nun einmal genauer an, was Smart Tags sind, wie man sie verwendet, wie man sie abschaltet, und wie man eigene programmieren kann.

Was sind Smart Tags? Im Falle von Internet Explorer sieht das (vereinfacht) so aus: eine Webseite wird geladen und gerendert. Während des Renderings werden diverse Smart Tag Libraries aufgerufen, die den Inhalt nach ihnen bekannten Termini durchsuchen - und dann Internet Explorer anweisen, diese durch eine gewellte Linie darzustellen. Fährt man über diesen "Hyperlink", wird eine Infobox mit diversen Links geöffnet, die vom Hersteller der Smart Tag Library als dem Kontext entsprechend gewählt wurden.

Genau das ist der Kritikpunkt an Smart Tags: sie verändern die Informationen einer Site. Ein krasses Beispiel gefällig? Eine Finanzsite A, die Informationen über Firmen anbietet. Eine Smart Tag Library, die auf Firmennamen reagiert, und dem Benutzer Links zu anderen Finanzsites vorschlägt - ob das den Betreibern der Finanzsite A gefällt sei dahingestellt.

Allerdings können Smart Tags auch durchwegs nützlich sein - im Falle einer Firma, die ihren Benutzern eigene Smart Tags zur Verfügung stellen will. Und andererseits - man kann Smart Tags als Website Betreiber auch ausschalten (siehe später im Artikel). Kümmern wir uns aber zuerst um die Userperspektive.

Smart Tags in Action

Beginnen wir damit, uns anzusehen wie sich Smart Tags beim täglichen Surfen bemerkbar machen. Dazu muß man allerdings zuerst zwei Schritte setzen: die Smart Tags generell erlauben, und sich eine Smart Tag Library downloaden & installieren. Das Erlauben von Smart Tags geht in der Tools/Internet Options... Dialogbox von statten:

Das war Teil Eins, nun folgt der interessantere Teil - wo bekommt man Smart Tag Libraries her? Einerseits bietet MS eine kleine Demolibrary an, andererseits finden sich bei Microsoft Office eServices etliche Libraries, die man einsetzen kann. Nach der (meist automatisierten) Installation ist man dann ready to rock and roll.

Als Opfer meiner Versuche habe ich mir die MSDN Site ausgesucht. Generell sind Smart Tags nicht sehr aufdringlich - sie werden nur unterwellt dargestellt, wie in diesem Fall der Terminus Microsoft:

Fährt man mit der Maus auf das Smart Tag, erhält man ein Info-Icon, mit dem man das eigentliche Smart Tag Menü öffnen kann:

Hier besteht es "nur" aus Links - aber da Smart Tags als COM Komponenten implementiert werden können, gibt es hier einen gewissen "Spielraum".

Smart Tags verhindern

Den Web Site Betreiber interessiert klarerweise, wie man verhindern kann, daß Smart Tags in die eigenen Seiten "hineingedoktert" werden - weil hin und wieder kann das störend sein, und seien es "nur" firmenpolitische Entscheidungen. Und man will sich ja nicht gerade darauf verlassen, daß der User die Smart Tags im Browser ausgeschaltet hat...

Nehmen wir folgendes einfaches Dokument (tagdocument.asp):

<html>
<head>
<title>SmartTags sind erlaubt</title>
</head>
<body>

<p>Der Terminus Microsoft erscheint mit SmartTag.</p>

</body>
</html>

Dieses wird bei eingeschalteten Smart Tags so dargestellt:

Um zu verhindern, daß Smart Tags eingefügt werden, muß man in das Dokument ein zusätzliches META Tag einbauen (tagsdisabled.asp):

<html>
<head>
<title>No SmartTags, please</title>
<meta name="MSSmartTagsPreventParsing" content="TRUE">
</head>
<body>

<p>
Der Terminus Microsoft wird ohne SmartTag
angezeigt, weil wir das META Tag gesetzt haben.
</p>

</body>
</html>

Der Erfolg gibt uns Recht:

Eigene Smart Tags programmieren

Das Selbstprogrammieren von Smart Tags kann auf 2 Arten angegangen werden: die harte Tour über COM (sehr leistungsfähig), oder über Smart Tag XML Libraries. An dieser Stelle möchte ich einige MSDN Artikel empfehlen:

Auf die erstere Variante kann ich zeit- und platzmäßig nicht eingehen, aber für die zweitere kann ich ein kleines Beispiel präsentieren. Alles, was man braucht, ist eine XML Datei (aspheutetags.xml):

<FL:smarttaglist xmlns:FL="urn:schemas-microsoft-com:smarttags:list">
<FL:name>AspHeute Demo Tags</FL:name> 
<FL:lcid>1033</FL:lcid>
<FL:description>Simple SmartTags von AspHeute</FL:description>
<FL:moreinfourl>http://www.aspheute.com/</FL:moreinfourl>
<FL:smarttag type="urn:schemas-microsoft-com:smarttags#generalterms">
    <FL:caption>ASP bezogene Termini</FL:caption>
    <FL:terms>
        <FL:termlist>upload,datenbank,performance</FL:termlist>
    </FL:terms>
    <FL:actions>
        <FL:action id="AHDbCat"> 
            <FL:caption>Daten&amp;bank Artikel</FL:caption>
            <FL:url>http://www.aspheute.com/kategorien/Datenbank.htm</FL:url>
        </FL:action>
        <FL:action id="AHTipsCat">
            <FL:caption>&amp;Tips und Tricks</FL:caption>
            <FL:url>http://www.aspheute.com/kategorien/ASP%20Tricks.htm</FL:url>
        </FL:action>
    </FL:actions>
</FL:smarttag>
</FL:smarttaglist>

Der Artikel Developing Simple Smart Tags geht auf die einzelnen XML Tags genau ein, von meiner Seite nur so viel: jedes Wort in FL:termlist wird mit einem Smart Tag ausgestattet, der die Links aus der Sektion FL:actions enthält.

Die Installation ist denkbar einfach - einfach in das folgende Verzeichnis kopieren:

Der Anwendungsfall? Eine firmeninterne Smart Tag Library, die den Mitarbeitern helfen soll, während des Surfens für bestimmte Termini firmenspezifische Informationen abrufen zu können. Der Artikel Developing Simple Smart Tags zeigt genauer, wie man die Library deployed (zum Client bringt), und wie man diese automatisch über den firmeninternen Webserver updaten kann.

Schlußbemerkung

In bestimmten Situationen - speziell der Intranetanwendungsfall der selbstgeschriebenen Smart Tags - können Smart Tags durchaus nützlich sein. Will man sie auf seiner Site allerdings unterbinden, muß man ein zusätzliches META Tag einfügen. Wäre es anders herum gewesen, hätte es keinen Aufschrei gegeben - allerdings wer hätte dann das META Tag zum Einschalten von Smart Tags eingebaut?

This printed page brought to you by AlphaSierraPapa

Download des Codes

Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20010801.zip

Links zu anderen Sites

Deploying Smart Tag DLLs by Using the Visual Studio Installer
http://msdn.microsoft.com/library/en-us/dnsmarttag/html/odc_deployst.asp
Developing Simple Smart Tags
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsmarttag/html/odc_stxml.asp?frame=true
Developing Smart Tag DLLs
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsmarttag/html/odc_smarttags.asp
Smart Tags Frequently Asked Questions
http://msdn.microsoft.com/library/en-us/dnsmarttag/html/odc_stfaq.asp

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.