# Mielenkiintoinen viesti Jean-Yves Cronierin saadessa Mozilla XUL:n juoksemaan Internet Explorerin sisällä

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

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

Mielenkiintoinen viesti Jean-Yves Cronierin saadessa Mozilla XUL:n juoksemaan Internet Explorerin sisällä

Posted on Sunday, September 12, 2004 11:46

Anna crossoverin jatkua! Jean-Yves Cronier lähti [kommentti](/archive/2003/11/23/648.aspx) Oman [vanha viesti HTC:stä Mozillan sisällä](/archive/2003/11/23/648.aspx), Hän osoittaa virkaan hän lähti vuonna [XULPlanet-foorumi](http://xulplanet.com/forum/viewtopic.php?t=1038) tekniikan näyttäminen saada [XUL-käyttäytyminen](http://xulplanet.com/tutorials/whyxul.html) Tämä on taas aika siistiä - ja olisi vielä viileämpää, jos sitä voitaisiin laajentaa niin, että se mahdollistaisi täydellisen kääntämisen kaikkien IE HTC:n ja XUL:n käyttäytymisen välillä! Joka tapauksessa, koska tämä on lähetetty foorumille, jossa en tiedä mitään abottia, toistan viestin tässä:

Olen pohtinut kuuluisan HTC-käyttäytymisen tarjoamia mahdollisuuksia IE:ssä. XUL:n pieniä spesifikaatioita olisi mielestäni ehkä mahdollista tulkita.

Pieni näyte:

Index.xul:

| <!----> |
| --- |
| **Koodi:** |
| &lt;?xml versio="1.0" koodaus="iso-8859-1"?&gt; <br>&lt;?xml-stylesheet type="text/css" href="xul.css" media= "kaikki"?&gt; <br>&lt;window id= "Esimerkillinen ikkuna" -otsikko= "Example" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.vain.xul"&gt; <br>&lt;Label control="some-text" arvo="Enter some text"/&gt; <br>&lt;tekstilaatikko id= "joku teksti" arvo= "toto"/&gt; <br>&lt;Label control="some-salasana" arvo="Enter a password"/&gt; <br>&lt;textbox id= "some-salasana" type="salasana" maxlength="8"/&gt; <br>&lt;valikkolistan nimi = "Bus"&gt; <br>  &lt;menupopup&gt; <br>    &lt;menuitem label="Car"/&gt; <br>    &lt;menuitem label="Taxi"/&gt; <br>    &lt;menuitem label="Bus" valittu= "true"/&gt; <br>    &lt;menuitem label="Train"/&gt; <br>  &lt;/menupuppi&gt; <br>&lt;/menulistinen&gt; <br>&lt;/ikkuna&gt; |

xul.css:

| <!----> |
| --- |
| **Koodi:** |
Nimike {käyttäytyminen:url(merkintä.htc)} <br>menuitem{käyttäytyminen:url(menuitem.htc)} <br>menulist{käyttäytyminen:url(menulist.htc)} <br>valikkopop{käyttäytyminen:url(menopup.htc)} <br>Tekstilaatikko{käyttäytyminen:url(tekstilaatikko.htc)} <br>window{behavior:url(window.htc)

Label.htc :

| <!----> |
| --- |
| **Koodi:** |
| &lt;public:htc urn="window"&gt; <br>&lt;public:attach event="ondocumentready" handler="building" /&gt; <br>&lt;public:property name="arvo" /&gt; <br>&lt;Script type="teksti/javascript"&gt; <br>Funktio build(){this.innerHTML=this. value;} <br>&lt;/script&gt; <br>&lt;/public:htc&gt; |

menuitem.htc :

| <!----> |
| --- |
| **Koodi:** |
| &lt;public:htc urn="window"&gt; <br>&lt;public:attach event="ondocumentready" handler="building" /&gt; <br>&lt;public:property name="id" /&gt; <br>&lt;public:property name="label" /&gt; <br>&lt;public:property name="arvo" /&gt; <br>&lt;Script type="teksti/javascript"&gt; <br>Funktio build () { <br> var option = document.creatingElement('option'); <br> Var style=this.currentStyle; <br> optio.setattribuutti("id", id); <br> if(this.id!=null){option.setAttribution('id'this.id); <br> if(this.value! = null){option.setAttribution('value',this.value); <br> if(merkintä! = null){option.innerHTML=market;} <br> for(var prop in style) {option.style[prop] = tyyli[rekvisiitta];} <br> that.outerHTML=option.outerHTML; <br>} <br>&lt;/script&gt; <br>&lt;/public:htc&gt; |

menulist.htc:

| <!----> |
| --- |
| **Koodi:** |
| &lt;public:htc urn="window"&gt; <br>&lt;public:attach event="ondocumentready" handler="building" /&gt; <br>&lt;public:property name="id" /&gt; <br>&lt;Script type="teksti/javascript"&gt; <br>Funktio build () { <br> var select = document.createElement('select'); <br> Var style=this.currentStyle; <br> Select.setAttribuutti("id", id); <br> if(id! = null){ <br> Select.setAttribute('id', this.id; <br> Select.setAttribuutti("name",this.id); <br>   } <br> Select.innerHTML=this.innerHTML; <br> for(var prop in style){ <br> select.style[prop] = tyyli[Pätevyys]; <br>   } <br> Select.style.width="100 %"; <br> that.outerHTML=select.outerHTML; <br>} <br>&lt;/script&gt; <br>&lt;/public:htc&gt; |

menupopup.htc:

| <!----> |
| --- |
| **Koodi:** |
| &lt;public:htc urn="window"&gt; <br>&lt;public:attach event="ondocumentready" handler="building" /&gt; <br>&lt;public:property name="id" /&gt; <br>&lt;public:property name="label" /&gt; <br>&lt;public:property name="arvo" /&gt; <br>&lt;Script type="teksti/javascript"&gt; <br>Funktio build () { <br> var optgroup = document.createElement('optgroup'); <br> Var style=this.currentStyle; <br> if(this.id! = null){optgroup.setattribuutti('id'this.id); <br> if(this.label! = null){optgroup.innerHTML=this.label;} <br> optgroup.innerHTML=this.innerHTML; <br> for(var prop in style){optgroup.style)[prop] = tyyli[rekvisiitta];} <br> tämä.outerHTML=optgroup.outerHTML; <br>} <br>&lt;/script&gt; <br>&lt;/public:htc&gt; |

textbox.htc:

| <!----> |
| --- |
| **Koodi:** |
| &lt;public:htc urn="window"&gt; <br>&lt;public:attach event="ondocumentready" handler="building" /&gt; <br>&lt;public:property name="id" /&gt; <br>&lt;public:property name="arvo" /&gt; <br>&lt;public:property name="type" /&gt; <br>&lt;public:property name="maxlength" /&gt; <br>&lt;Script type="teksti/javascript"&gt; <br>Funktio build () { <br> var input = document.createElement("input") <br> Var style=this.currentStyle; <br> Input.setAttribuutti("id", id); <br> if(arvo! = null){input.set attribuutti('arvo', arvo;} <br> if(type! = null){input.setAttribuutti('type' type);} <br> if(maxlength! = null){input.setAttribuutti('maxlength', maxlength} <br> for(var prop in style) {input.style[prop] = tyyli[rekvisiitta];} <br> input.style.width="100 %"; <br> input.style.cursor="teksti". <br> input.style.borderstyle="inset". <br> input.style.borderColor="ActiveBorder"; <br> input.style.borderWidth="2px"; <br> input.style.backgroundColor="#]FF"; <br> input.style.paddingLeft="2px"; <br> tämä.outerHTML=input.outerHTML; <br>} <br>&lt;/script&gt; <br>&lt;/public:htc&gt; |

window.htc:

| <!----> |
| --- |
| **Koodi:** |
| &lt;public:htc urn="window"&gt; <br>&lt;public:attach event="ondocumentready" handler="building" /&gt; <br>&lt;public:property name="title" /&gt; <br>&lt;Script type="teksti/javascript"&gt; <br>Funktio built(){window.status=this.title;} <br>&lt;/script&gt; <br>&lt;/public:htc&gt; |

Eikö olekin hassua? ![Hyvin onnellinen](http://xulplanet.com/forum/images/smiles/icon_biggrin.gif)

Tämänkaltaisen projektin tavoitteena ei ole nostaa Internet Exploreria, vaan näyttää hieman yleiskuvaa muille (joilla ei ole Mozilla Web Browseria) Mozilla Frameworkin avulla saatavilla olevista tekniikoista.