# Interessant bericht over het krijgen van Mozilla XUL loopt binnen Internet Explorer door Jean-Yves Cronier

<datetime class="hidden">2005-10-30T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported -->
## 

Interessant bericht over het krijgen van Mozilla XUL loopt binnen Internet Explorer door Jean-Yves Cronier

Geplaatst op zondag 12 september 2004 11:46

Laat de crossover verder gaan! Jean-Yves Cronier links [een opmerking](/archive/2003/11/23/648.aspx) op mijn [oude post over HTC binnen Mozilla](/archive/2003/11/23/648.aspx), wijst hij naar een post die hij achterliet in de [XULPlanet-forum](http://xulplanet.com/forum/viewtopic.php?t=1038) tonen van een techniek om te krijgen [XUL-gedrag](http://xulplanet.com/tutorials/whyxul.html) rennen binnen Internet Explorer met behulp van een eenvoudige HTC gedrag als een soort interface laag. Dit is opnieuw, vrij cool - en zou nog cooler als het zou kunnen worden uitgebreid om volledige vertaling tussen alle IE HTC gedrag en hun XUL equivalent mogelijk! Hoe dan ook, aangezien dit is geplaatst op een forum ik weet niets abot, Ik zal de post hier herhalen:

Ik heb nagedacht over mogelijkheden aangeboden door beroemde gedrag HTC onder IE. Ik denk dat het misschien mogelijk zou zijn om een klein deel van de specificaties van XUL te interpreteren.

Een klein monster:

index.xul :

| <!----> |
| --- |
| **Code:** |
| &lt;?xml versie="1.0" encoding="iso-8859-1"?&gt; <br>&lt;?xml-stylesheet type="text/css" href="xul.css" media="all"?&gt; <br>&lt;window id="example-window" titel="Example" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt; <br>&lt;label control="some-text" waarde="Enter some text"/&gt; <br>&lt;textbox id="some-text" value="toto"/&gt; <br>&lt;label control="some-password" waarde="Enter a password"/&gt; <br>&lt;textbox id="some-password" type="password" maxlength="8"/&gt; <br>&lt;Menulist label="Bus"&gt; <br>  &lt;menupopup&gt; <br>    &lt;menuitem label="Car"/&gt; <br>    &lt;menuitem label="Taxi"/&gt; <br>    &lt;menuitem label="Bus" selected="true"/&gt; <br>    &lt;menuitem label="Train"/&gt; <br>  &lt;/menupopop&gt; <br>&lt;/menulijst&gt; <br>&lt;/venster&gt; |

xul.css:

| <!----> |
| --- |
| **Code:** |
Label {gedrag:url(label.htc)} <br>menuitem{gedrag:url(menuitem.htc)} <br>menulist{gedrag:url(menulist.htc)} <br>menupopup{gedrag:url(menupopulop.htc)} <br>textbox{gedrag:url(textbox.htc)} <br>window{gedrag:url(window.htc)}

label.htc :

| <!----> |
| --- |
| **Code:** |
| &lt;public:htc urn="window"&gt; <br>&lt;public:attach event="ondocumentready" handler="build" /&gt; <br>&lt;public:property name="value" /&gt; <br>&lt;script type="text/javascript"&gt; <br>functie build(){this.innerlijkeHTML=this.value;} <br>&lt;/script&gt; <br>&lt;/public:htc&gt; |

menuitem.htc :

| <!----> |
| --- |
| **Code:** |
| &lt;public:htc urn="window"&gt; <br>&lt;public:attach event="ondocumentready" handler="build" /&gt; <br>&lt;public:property name="id" /&gt; <br>&lt;public:property name="label" /&gt; <br>&lt;public:property name="value" /&gt; <br>&lt;script type="text/javascript"&gt; <br>functie build() { <br> var optie = document.createElement("optie"); <br> var style=this.currentStyle; <br> option.setAttribute("id,"id); <br> if(this.id!=null){option.setAttribute("id,"this.id);} <br> if(this.value!=null){option.setAttribute("value,"this.value);} <br> if(label!=null){option.innerlijkeHTML=label;} <br> voor(var prop in stijl){optie.style[prop]=stijl[prop];} <br> this.outerHTML=option.outerHTML; <br>} <br>&lt;/script&gt; <br>&lt;/public:htc&gt; |

Menulist.htc :

| <!----> |
| --- |
| **Code:** |
| &lt;public:htc urn="window"&gt; <br>&lt;public:attach event="ondocumentready" handler="build" /&gt; <br>&lt;public:property name="id" /&gt; <br>&lt;script type="text/javascript"&gt; <br>functie build() { <br> var select = document.createElement("select"); <br> var style=this.currentStyle; <br> select.setAttribute("id,"id); <br> if(id!=null){ <br> select.setAttribute("id,"this.id); <br> select.setAttribuut("name,"this.id); <br>   } <br> select.innerlijkeHTML=this.innerlijkeHTML; <br> voor(var prop in stijl){ <br> select.style[prop]=stijl[prop]; <br>   } <br> select.style.width="100%"; <br> this.outerHTML=select.outerHTML; <br>} <br>&lt;/script&gt; <br>&lt;/public:htc&gt; |

menupopup.htc :

| <!----> |
| --- |
| **Code:** |
| &lt;public:htc urn="window"&gt; <br>&lt;public:attach event="ondocumentready" handler="build" /&gt; <br>&lt;public:property name="id" /&gt; <br>&lt;public:property name="label" /&gt; <br>&lt;public:property name="value" /&gt; <br>&lt;script type="text/javascript"&gt; <br>functie build() { <br> var optgroup = document.createElement("optgroup"); <br> var style=this.currentStyle; <br> if(this.id!=null){optgroup.setAttribute("id,"this.id);} <br> if(this.label!=null){optgroup.innerlijkeHTML=this.label;} <br> optgroup.innerlijkeHTML=this.innerlijkeHTML; <br> voor(var prop in stijl){optgroup.style[prop]=stijl[prop];} <br> this.outerHTML=optgroup.outerHTML; <br>} <br>&lt;/script&gt; <br>&lt;/public:htc&gt; |

textbox.htc:

| <!----> |
| --- |
| **Code:** |
| &lt;public:htc urn="window"&gt; <br>&lt;public:attach event="ondocumentready" handler="build" /&gt; <br>&lt;public:property name="id" /&gt; <br>&lt;public:property name="value" /&gt; <br>&lt;public:property name="type" /&gt; <br>&lt;public:property name="maxlength" /&gt; <br>&lt;script type="text/javascript"&gt; <br>functie build() { <br> var input = document.createElement("input"); <br> var style=this.currentStyle; <br> input.setAttribute("id,"id); <br> if(value!=null){input.setAttribute("value",value);} <br> if(type!=null){input.setAttribute("type",type);} <br> if(maxlength!=null){input.setAttribuut("maxlength",maxlength);} <br> voor(var prop in stijl){input.style[prop]=stijl[prop];} <br> input.style.width="100%"; <br> input.style.cursor="text"; <br> input.style.borderStyle="inset"; <br> input.style.borderColor="ActiveBorder"; <br> input.style.borderWidth="2px"; <br> input.style.backgroundColor="#FFFFFF"; <br> input.style.paddingLeft="2px"; <br> this.outerHTML=input.outerHTML; <br>} <br>&lt;/script&gt; <br>&lt;/public:htc&gt; |

window.htc:

| <!----> |
| --- |
| **Code:** |
| &lt;public:htc urn="window"&gt; <br>&lt;public:attach event="ondocumentready" handler="build" /&gt; <br>&lt;public:property name="title" /&gt; <br>&lt;script type="text/javascript"&gt; <br>functie build(){window.status=this.title;} <br>&lt;/script&gt; <br>&lt;/public:htc&gt; |

Het is grappig, hè? ![Erg gelukkig.](http://xulplanet.com/forum/images/smiles/icon_biggrin.gif)

Het doel van een project als dit is niet om Internet Explorer te verhogen, maar gewoon om een klein overzicht te tonen aan anderen (die niet Mozilla Web Browser) de technologieën beschikbaar met Mozilla Framework