HTMLWorld - HTML, CSS, JavaScript, PHP, Java, Flash und vieles mehrHTMLWorld:   Home | Impressum |
 

 
 

Anzeige 
 
               Forum
 
 
HTMLWorld » DHTML Behaviors » HTC-Komponenten

DHTML Behaviors: HTC-Komponenten

von Jan Winkler

Eine HTC-Datei besteht im Grunde immer aus den gleichen Dingen. Ähnlich wie HTML besitzt sie ein root-Element (Elternelement), das sich hier public:component nennt. Innerhalb dieses Elementes werden alle anderen Elemente notiert. Außerdem wird auf jeden Fall ein script-Bereich benötigt in dem die verwendeten Funktionen Platz finden werden. Beispiel für eine minimale HTC-Datei:

Anzeige

<public:component>
 <script>
 </script>
</public:component>

HTC-Dateien könne auf zweierlei Arten behandelt werden: einerseits können sie das Verhalten eines bestehenden (HTML-)Objektes beschreiben (ab MSIE 5.0) und andererseits können sie selbst ein Objekt darstellen und in das Dokument einbinden (ab MSIE 5.5). Die erste Möglichkeit wurde vorhergehend schon mehrmals besprochen. Bei der zweiten Möglichkeit schreibt die Komponente sich sozusagen selbst in das Dokument hinein. Dazu wird innerhalb des Dokumentes ein eigener Tag (Custom Tags / http://msdn.microsoft.com/workshop/author/dhtml/overview/customtags.html) definiert, dem die Komponente zugewiesen wird. Beispiel:

<html xmlns:meinNamespace>
<style>
 meinNamespace\:meinElement { behavior:url(komponente.htc); }
</style>
...
<meinNamespace:meinElement attribut="wert">
</meinNamespace:meinElement>
...
</html>

Die Komponente schreibt sich dann selbst:

<public:component>
 <script>
  innerHTML = '<p>neuer Inhalt der Komponente</p>';
 </script>
 ...
</public:component>

PUBLIC:COMPONENT  nach oben

Das PUBLIC:COMPONENT-Element stellt das root-Element der Datei dar. Es deutet dem Browser, dass es sich dabei um eine HTC-Komponente handelt. Ausserdem besitzt es folgende Eigenschaften:

EigenschaftBeschreibung
idStellt eine eindeutige Identifikation der Komponente dar.
lightWeightBoolescher Wert, der beschreibt, ob die Datei Markup (z.B. HTML) enthält (true) oder nicht (false / Standard). Wird benötigt, wenn sich die Komponente selbst schreibt.
literalContentBoolescher Wert, der beschreibt, ob der enthaltende Markup gerendert werden soll (true) oder nicht (false / Standard). Wird benötigt, wenn sich die Komponente selbst schreibt. (siehe Microsoft / http://msdn.microsoft.com/workshop/ author/behaviors/overview/ literalcontent_ovw.html)
nameName mit dem die Komponete innerhalb des Dokumentes angesprochen werden kann.
supportsEditModeBoolescher Wert, der beschreibt, ob der Inhalt einer selbst-schreibenden Komponente editierbar ist (true) oder nicht (false / Standard).
tagNameName des selbstdefinierten Tags (bei selbstschreibenden Komponenten).
urnAdresse damit die Komponente identifizieren werden kann.

PUBLIC:ATTACH  nach oben

Das PUBLIC:ATTACH-Element bindet eine Funktion an ein Ereignis. Das entspricht in etwa dem aus HTML bekannten <element onEreignis="funktion()"> Format in anderer Schreibweise. Dem Element müssen zwei Werte übergeben werden: Das Attribut event enthält den Namen des Ereignisses das angebunden werden soll, sowie das Attribut onevent das die Auszuführende Funktion bei Eintritt des Ereignisses beschreibt. Ausserdem können optional die Attribute for und id definiert werden. For gibt die Quelle des Ereignisses (z.B. window, document, ...) an. Die id beschreibt eine eindeutige Identifikation. Beispiel:

<public:attach event="onclick" onevent="machwas()" />
<script>
 function machwas() { ... }
</script>

PUBLIC:DEFAULTS  nach oben

Das PUBLIC:DEFAULTS-Element definiert die Standard-Eigenschaften einer Komponente. Es besitzt folgende Attribute:

EigenschaftBeschreibung
canHaveHTMLBoolescher Wert, der beschreibt, ob die Datei Markup (z.B. HTML) enthält (true) oder nicht (false / Standard). Wird benötigt, wenn sich die Komponente selbst schreibt.
contentEditableBoolescher Wert, der beschreibt, ob der Inhalt einer selbst-schreibenden Komponente editierbar ist (true) oder nicht (false / Standard). Der Wert inherit besagt, dass die Eigenschaft vom Eltern-Element übernommen werden soll.
styleEntspricht dem style-Attribut eines HTML-Elements.
tabStopBoolescher Wert, der beschreibt, ob die Komponente durch die Tabulatur-Taste (Tab) aktiviert werden kann (true) oder nicht (false / Standard).
viewInheritStyleBoolescher Wert, der beschreibt, ob die Style-Angaben des Eltern-Elements übernommen werden können (true / Standard) oder nicht (false).
viewLinkContentBoolescher Wert, der beschreibt, ob der Markup-Inhalt der Komponente als ViewLink (siehe http://msdn.microsoft.com/ workshop/author/behaviors/overview/ viewlink_ovw.html) verwendet wird (true) oder nicht (false / Standard).
viewMasterTabBoolescher Wert, der beschreibt, ob das Master-Element des ViewLinks in die Tabulatur-Reihenfolge des Dokumentes eingebunden wird (true / Standard) oder nicht (false).

PUBLIC:EVENT  nach oben

Das PUBLIC:EVENT-Element definiert ein Ereignis der Komponente. Dazu wird das Attribut name (Name des Ereignisses) erwartet. Optional kann eine id vergeben werden, durch die das Ereignis innerhalb des Scriptes angesprochen werden kann. Beispiel:

<public:event name="onMeinEreignis" ID="Ereignis_1" />
<script>
 /* ... */
 Ereignis_1.fire(meinEreignis);
 /* ... */
</script>

PUBLIC:METHOD  nach oben

Das PUBLIC:METHOD-Element definiert eine Methode der Komponente. Diese wird durch das name-Attribut beschrieben und muss als Funktion innerhalb der Komponente vertreten sein. Ausserdem können optional eine id sowie ein interner Name (internalname) vergeben werden. Die id beschreibt eine eindeutige Identifikation der Methode. Der interne Name wird dazu verwendet um Methoden nach Aussen hin einfacher bzw. besser erscheinen zu lassen. Dazu wird der eigentliche Name der Funktion als interner Name definiert - als Methodenname wird ein anderer (einfacherer) gewählt. Wird nun von Aussen, d.h. vom Dokument aus, die Methode aufgerufen kann dies über den einfachereren Namen geschehen. Wird kein interner Name definiert gilt automatisch der Wert des name-Attributes. Beispiel:

<public:method name="meineMethode">
<script>
 function meineMethode(v)
 { /* ... */ }
</script>

... oder:

<public:method name="meineMethode" internalname="abc_fgt_12a">
<script>
 function abc_fgt_12a(v)
 { /* ... */ }
</script>

... wird jeweils aufgerufen durch:

meineKomponente.meineMethode(wert);

PUBLIC:PROPERTY  nach oben

Das PUBLIC:PROPERTY-Element definiert eine Eigenschaft/ein Attribut der Komponente. Dazu wird der name der Eigenschaft erwartet. Alternativ kann dazu auch ein interner Name (internalname) beschrieben werden (siehe PUBLIC:METHOD). Ausserdem stehen die folgenden optionalen Attribute zur Verfügung: get (Funktion die aufgerufen werden soll, wenn der Wert gelesen wird), id (Identifikation), persist (Boolescher Wert, ob die Eigenschaft persistent/beständig sein soll), put (Funktion die aufgerufen werden soll, wenn der Wert geschrieben wird) und value (Standardwert der Eigenschaft). Des Weiteren besitzt das Element die Methode fireChange(). Wird diese ausgeführt, deutet sie dem Dokument, dass die betreffende Eigenschaft geändert wurd und somit das onpropertychange-Ereignis ausgelöst werden muss. Wurde der put-Wert definiert, brauch diese Methode nicht extra aufgerufen werden. Beispiel:

<public:property id="eigenschaft1" name="meineEigenschaft" 
                 put="setzen" get="lesen"/>
<script>
var eigenschaft = null;

function lesen()
{
 return(eigenschaft);
}

function setzen(wert)
{
 eigenschaft = wert;
 eigenschaft1.fireChange();
}
</script>

Bitte bemerken Sie, dass, sobald die get- oder put-Eigenschaft definiert wurde, der interne Name ignoriert wird.

Hinweise  nach oben

Bitte beachten Sie, dass auch für HTC-Dateien erhöhte Sicherheitsmerkmale gelten. Das bedeutet, dass HTC-Dateien nur auf dem Server verwendent werden können, auf dem sich auch das Quelldokument befindet. Dazu kommt, dass es sich bei der Verbindung auch um das gleiche Protokoll und die gleiche Domain handeln muss. Als Beispiel kann z.B. eine Datei http://www.name.de/abc.html die Datei http://www.name.de/abc.htc verwenden, allerdings können die Dateien https://www.name.de/abc.htc und http://www.name-name.de/abc.htc nicht verwendet werden.

Bitte beachten Sie auch, dass es sich bei HTC-Dateien um XML handelt und deshalb auch die Regeln von XML gelten müssen (/> bei leeren Elementen, Anführunsgezeichen sind zu setzten, ...).



« zurück weiter »
Bewerten

 

DHTML Behaviors

.Autor:Jan Winkler.
. Bewertung:
DHTML Behaviors: HTC-Komponenten HTMLWorld
(5/5 bei 1 Votes)
.
. Community: 754 Beiträge im DHTML Behaviors Forum .

Navigation

html-Datei in Container nachladen von Piwi
blättern navigation - nicht alle seitenzahlen zeigen von Powell
XML-Datei per Javascript ver- und entschlüsseln?! von Nupsi
getElementById/innerHTML von duff_beer
Brauche dringend Hilfe/Gallery2.3 von Harburger1887
Window Open von javahack
Musik nach bestimmter Zeit abspielen von InsaYn
Merlin erscheint nicht auf der Website von Moijto
Bräuchte Hilfe von jemanden der sich auskennt ;-) von ladehf
Re: php Style über javascript laden nur wie? von TBT
Bannerwechsel mit mehreren Bannern und per Klick von katha126
HTML Referer ändern von nhs
JavaScript Weiterleitung von xmen
Zeitgesteuertes und zufälliges laden verschiedener index.php von Brainflame
Dynamisch erstellten (mit PHP) Checkboxen mit jQuery/AJAX au von Kyfe

zum DHTML Behaviors Forum »


 
     
 

Anzeige