2009 07 maaliskuu 2009

Soittaminen Useita Windows lataustapahtuman Tehtävät Javascript

Tässäpä toinen vähän peice Javascript kikkailu, että minun piti kaivaa noin, koska tilanne commaned sitä. Yhdessä minun sivustoja, minulla oli tämä tilanne, jossa minun piti toteuttaa "windows.onload" kahdesti. Ensimmäinen asia, joka tuli kokemattomalle mieleen kuin minun (Täytyy rehellisesti sanoa, että koska olen käyttänyt javascript puitteisiin ja kirjastot, olen forgotton tehdä yksinkertaisia ​​asioita itse ... surullista mutta totta), on seuraavan menetelmän ...

 window.onload = onloadfn1;
 window.onload = onloadfn2;
 window.onload = onloadfn3;
 jne. ..

Ikävä sanoa, mutta tämä tapa toimia ... dont halua keskustella toteuttamiseen tiede Javascript paljon ... mutta oman viimeaikaisten kokemusten, vain viimeinen toiminto (onloadfn3) on sairas todella saada teloitettiin.

Normaaleissa tilanteissa, toisin kuin minun (jonka minä puhua hieman myöhemmin) ... voisit jollakin seuraavista suorittaa mutliple onload toiminnot ....

Tai jotain tällaista

 funktio doOnLoad () {
         onloadfn1 ();
         onloadfn2 ();
         onloadfn3 ();
 }
 window.onload = doOnLoad;

Minun nykyinen tilanne, en voi käyttää kumpaakaan edellä ...
Miksi minun pitää soittaa windows.onload kahdesti, vaan että soittaa kaksi tehtävää yhden onload funktio? Tässä vilkaista minun ongelmani ilmoitus ...

"Oman sivuston sivut on rakennettu kuten WordPress teema .... eli ei yhteistä Header.php ja footer.php, joka sisällytetään kaikkiin sivuille. On onload funktio implementaion vuonna footer.php tehdä joitakin yhteisiä onload toimintoja. Ja on muutamia sivuja, jotka tarvitsevat jotain omaa lataustapahtuman, lukuun ottamatta tehnyt yhteisiä onload toimintoa. Jos liittää takaisinkutsufunktio suoraan window.onload ohjaaja, se ohittaa aiemmin määritetty kutsuja on footer.php "

.... Onko minun ongelmani ymmärtää :) ?

No! on olemassa muutamia ratkaisuja, en löydä. Ne kaikki ovat hyvin samanlaisia ​​ja pääasiassa implementions ja liuoksen annetaan Simon Willison ( http://simonwillison.net/2004/May/26/addLoadEvent/ ) ...

Ratkaisu:

Lisää vain tämä javascript-koodin sivusto ...

 toiminto addLoadEvent (FUNC) {
     var oldonload = window.onload;
     if (typeof window.onload! = 'toiminto') {
        window.onload = FUNC
     } Else {
        window.onload = function () {
            Jos (oldonload) {
                   oldonload ()
           }
           FUNC ()
        }
    }
 }

Ja kutsuvat sitä sen sijaan, että "windows.onload"

 addLoadEvent (FunctionToRunOnPageLoad);
 addLoadEvent (function () {
 / * Lisää koodin suorittamisen sivunlatauksella *
 }); 

Edut Tämän koodinpätkän ...
1. Ensisijaisesti se voit olla useita windows.onload tapahtumia, soitti erillistä osiin koodia ilman overridding edellinen määritelmä
2. Se on todella huomaamaton. Se voidaan sijoittaa tiedoston sinun on skriptejä tai erilliseen tiedostoon.
3. Se toimii vaikka window.onload on jo asetettu.


2008 20 syyskuu 2008

TEXTAREA Collapse ongelma XSL / XSLT


ONGELMA SELVITYS:
Törmäsin tähän ongelmaan koskien textareas vuonna XSLs. Yksinkertaisesti sanoen, ongelma syntyy, kun sinulla on tyhjä <textarea> tag, se romahtaa sen <textarea />.
eli jos sinulla on ollut jotain seuraavista oman XSL ja XML-tiedot TEXTAREA arvon, palauttaa mitään ...

<textarea name='description'> <xsl:value-of select="DESCRIPTION"/> </ textarea>

Koska selaimet eivät tunnista tätä, se aiheuttaa muun lomakkeen HTML törmätä tekstikenttään.

MAHDOLLISET RATKAISUT:

Vuonna XSL, lisää non-breaking-avaruus () jälkeen xsl: value tag.BEWARE, hoitaa tätä ylimääräistä tilaa lisätyn aikana asiakkaan puolella validointi tällä alalla.

<textarea name='description'> <xsl:value-of select="DESCRIPTION"/> </ textarea>

Tai
<xsl:value-of select="concat (DESCRIPTION,'')"/>

Tai
Aseta <xsl:value-of select="@unknown" /> tag osoittaa tuntematon ominaisuus. Tämä pakottaa PHP XSLT jäsennin tuottaa avaamista ja sulkemista tekstialueen tag, vaikka sillä ei mitään siltä väliltä.

Tai
Lisää <xsl:text> kenttä sisältää tila pakottaa lopputunniste.

Kuitenkin, vaikka edellä mainitut ratkaisut voivat näyttää korjata ongelman, en ole vielä vakuuttunut siitä, että he ovat oikeassa ja parhaita tapoja korjata sen. Jos on muita parempi tapa vahvistaa tämän omituisuus, tee meille.


2008 14 syyskuu 2008

Erilaisia ​​XSL testiolosuhteet (Collection of XSL: IF ja XSL: KUN testiolosuhteissa)

Joka kerta täytyy tehdä XSL: IF tai XSL: KUN testi, minun on palattava hakuteoksia. En koskaan näytä muistaa heitä. Oletettavasti olisi enemmän siellä, aivan kuten minä, jotka mieluummin saada ne kaikki, on mahdollista, yhteen paikkaan, valmiina viitataan tarvittaessa.

Niille, jotka ovat uusia ... Syntaksi XSL: IF

<xsl:if test="expression">
<! - Sisältö: template ->
</ Xsl: jos>

Xsl: jos / xsl: kun Test Collection
Olosuhteet Alla ovat yksinkertaisia ​​ja itsestään selviä. Siksi uskon ja se ei tarvitse paljon selitystä

<xsl:if test="position()=last()-1">
Tämä jos viimeinen, mutta yksi osa listalla!
</ Xsl: jos>

<xsl:if test="SALARY> 5000 ">
Palkka Tämän henkilön on suurempi kuin Rs. 5000
</ Xsl: jos>

<xsl:if test="count(JOBS)> 3 '>
On enemmän kuin 3 työpaikkaa tällä listalla!
</ Xsl: jos>

<xsl:if test="(@DEPT ='SALES') tai (@JOINYEAR = '1997')">
Tämä henkilö on peräisin myyntiimme tai hänen vuosi Liittyminen on vuodesta 1997
</ Xsl: jos>

<xsl:if test="EXPERIENCE">
Tämä henkilö on sentään yksi kokemus alielementti.
</ Xsl: jos>

<xsl:if test="@HOBBY">
Henkilöllä on harrastus ominaisuus.
</ Xsl: jos>

Sama teksti olosuhteissa voitaisiin käyttää XSL: VALITSE / XSL: KUN sekä

xsl: valitse

XSLT: n xsl: choose opetus on samanlainen xsl: jos vaan on muutamia keskeisiä eroja:
• Yksi xsl: valitse-elementti voi testata enemmän kuin yksi ehto ja lisätään eri solmuja tuloksen puun perusteella, joka tila on tosi.
• xsl: valitse elementti voi olla oletusmalli lisätä tulokseen puun jos mikään ehdoista toteutuu. (Vertaa xsl: jos, joka ei vastaa "toisen"-tilassa.)
• xsl: valitse elementti on erityisiä subelements jotka ovat välttämättömiä, jotta se toimisi, ja voit laittaa hyvin muodostuneita elementtejä haluat sisällä xsl: jos elementti.

<xsl:choose>
<xsl:when test="boolean-expression">
Tee jotain kun tämä boolean-lauseke on TURE
</ Xsl: jos>
<xsl:otherwise> Tee jotain muuta </ ​​xsl: muuta>
</ Xsl: valitse>


2008 13 elokuu 2008

Tokenizing eroteltu merkkijono sisällä XSL

Jos vaatimus on jakaa solmun arvo XML, joka sisältää eroteltu merkkijono arvon, tulee yksittäisiä kohteita, niin olet tullut oikeaan paikkaan ... vilkaista alla oleva esimerkki. Jos olet perehtynyt hieman XML ja XSL ... enkä usko sinun olisi mitään selitystä.
Myös tämä esimerkki sisältää käyttö XSL toimintoja, kuten xsl: call-malli, xsl: merkkijono-ennen, xsl: merkkijono-jälkeen, jos se mitä olet jälkeen.

XML muokkaamisen (food.xml): -
Oletetaan tehtävänä on tokenize merkkijono erotettu pilkulla, on tunnisteen "avainsanat"

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<date>July 2008</date>
<description>All about things we eat everyday</description>
<keywords>Fruits, Vegetables, Pulses, Meat, Cereals </keywords>
</food>

XSL (food.xsl): -

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>XSL 1.0 Delimited String Tokeniser</title>
</head>
<body>
<xsl:value-of select="food/meta"/>
<div >
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="food/keywords" />
<xsl:with-param name="delimitr" select="','" />
</xsl:call-template>

</div>
</body>
</html>
</xsl:template>
<xsl:template name="tokenize">
<xsl:param name="string" />
<xsl:param name="delimitr" />
<xsl:choose>
<xsl:when test="contains($string, $delimitr)">
<div style="border:1px solid red;">
<h3><xsl:value-of select="substring-before($string,$delimitr)" /></h3>
<xsl:variable name="data" select="substring-before($string,$delimitr)"/>
</div>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="substring-after($string, $delimitr)" /><xsl:with-param name="delimitr" select="$delimitr" /></xsl:call-template>
</xsl:when>
<xsl:otherwise>
<div style="border:1px solid red;">
<h3><xsl:value-of select="$string" /></h3>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

Saatu teho HTML: -

<div>
<div style="border: 1px solid red;">
<h3>Fruits</h3>
</div>
<div style="border: 1px solid red;">
<h3> Vegetables</h3>
</div>
<div style="border: 1px solid red;">
<h3> Pulses</h3>
</div>
<div style="border: 1px solid red;">
<h3> Meat</h3>
</div>
<div style="border: 1px solid red;">
<h3> Cereals </h3>
</div>
</div>

Tarpeetonta sanoa ... vain muuttaa parametri "delimitr", jotta erotin valitsemaasi


2008 04 elokuu 2008

Ongelma asentoon () ja XSL ... vai onko?

Minulla oli tämä strage ongelma luotaessa XSL tänään. Etsinyt vastauksia koko verkon, mutta couldnt löytää mitään .... Oikeastaan ​​kai! Olen kuhmu tiedä mitä minun ongelmani oli, niin mitä etsin?

Anyway! Vain jos sinulla on tämä aivan sama ongelma myös ja jotenkin voimalla FORCE olet onnistunut laskeutumaan tällä sivulla ... te kiittää minua tonnia ... Ja jos olet vahingossa päätynyt tälle sivulle jostain kumman kohtalosta ja satut olemaan XSL kehittäjä, eivät tee merkille NYT, tulevaisuuden syy, jos jonain päivänä kohtaat tämän ongelman, niin FORCE ei ehkä ole teidän kanssanne.

Ongelma lausunto:
Minulla on XML, jossa on kaksi solmua useita kohteita, ja erät näiden kahden solmut on yksi yhteen vastaavuus. Alla olevassa esimerkissä, kunkin kohteen solmussa <array name="PLAYURL" /> liittyy (vastaava asema) ja kohteen solmussa <array name="SITENAME" />

<?xml version="1.0" encoding="utf-8"?>
<myplaylists>
<playlist>
<title>Best of Rest </title>
<array name="SITENAME">
<str>www.musicindiaonline.com</str>
<str>www.dhingana.com</str>
<str>www.raaga.com</str>
<str>www.smashits.com</str>
<str>www.desimusic.com</str>
<str>www.musicplug.in</str>
</array>
<array name="PLAYURL">
<str>http://www.musicindiaonline.com/123/</str>
<str>http://www.dhingana.com/play/123</str>
<str>http://www.raaga.com/123</str>
<str>http://ww.smashits.com/123</str>
<str>http://www.desimusic.com/123</str>
<str>http://www.musicplug.in/123</str>
</array>
</playlist>
</myplaylists>

Nyt minulla on silmukka, jossa i takaisinkytkentä <array name="SITENAME">, ja haluan saada veroihin (at vastaava asema) ja <array name="PLAYURL">,

Mitä te normaly yrittää tehdä, on ...

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
play from : <a href="{../../array[@name='PLAY']/str[position()]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

SORRY! TÄMÄ tapana työskennellä ... Ah!! Surpised ...

Nyt varmaan kokeilla, jotain tällaista ...

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos"> <xsl:value-of select="position()"/></xsl:variable>
play from : <a href="{../../array[@name='PLAY']/str[$pos]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

Ja taas tämä tapa toimia ... Nyt olet naarmuuntumisen pään, yrittää ottaa yhteyttä kaikki kuka luulet tuntee joitakin XSL ja voisi olla mitään apua ... yrität joka toinen vaihtoehto ... ja silti se tapana työskennellä ... No! Että mitä tapahtui minulle sentään ...

DONT epätoivo! Kokeile tätä

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$ pos-int ]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

Dont KYSY miksi se toimii. Syy i dont on oikeus syy ... jos teet! Älä pudota kommentti. Se voi olla melko hyödyllinen. Myös! Jos sinulla on paremmat otsikko tähän virkaan, tee pudota minua linja :)


2008 02 elokuu 2008

Asettaminen DOCTYPE on XSL

Viime viikolla luonut progessive HTML / CSS ulkoasua asiakkaalle testanneet IE6, IE7 ja FF 3, tuntui täysin hieno ... ASTI! layout meni alempana manufacting aikana. Se epäonnistui. Page asetteluja meni koko paikka, kun HTML layout muutettiin XSL ja XML soveltaa sitä ... Bummer!

Pystynyt nukkumaan ok viikonloppuna, ennakoiden maanantaiaamuna, kun minun täytyy korjata SH **. Mutta nyt ottaa hieman experince käsittelemään tällaiset tilanteet (Browser koukero, tarkoitan), tiesin, että se täytyi tehdä mitään muuta kuin DOCTYPE .... ja se oli ...

Ongelma:
Haluat hallita DOCTYPE, koska transformaatiotanne sisältää oletuksena DOCTYPE selkeästi, ja te asettelu tulee ulos heittää.

Ratkaisu:
XSLT tiedot antaa lähdön menetelmät asettaa DOCTYPE on valinta. Myös meille käyttöliittymän kehittäjille kiinnostavista aiheista olisi HTML-menetelmiä ja XML-menetelmiä .

No! ennen kuin kyllästyt, tässä on korjaus.

Esim.., Jos sinulla on ollut seuraava DOCTYPE HTML-versiossa: -

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Sitten XSL sinulla olisi oltava seuraavat: -

<xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/loose.dtd" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" indent="yes" />

ja lopuksi! älä tee varma XSLT lähtö tottelee DOCTYPE olet valinnut.


2008 04 toukokuu 2008

Sisällytä XSL sisällä XSL

Jos XML / XSL muunnokset on sinun domian, niin on hetkiä, jolloin haluamme peice Dynamic koodia käytetään kirjastokohdetta (tehtävä uudelleen käytettävissä). Mitä tarkoitan, ehkä voitaisiin tehdä selväksi tämän esimerkin tilanteessa.

Kuvittele luot sivuston (ja XML, XSL transfroms tietysti) ja useimmat sivuilla olisi Kommentit Module. No! sitten joko kopioit tai liitä tämä koodi jokaiselle sivulle malliin (joka minulla ei ole sanottavaa, mutta elatusapua ja työstää painajainen) tai jopa parempi, luot include-tiedostoon, joka voidaan vetää sisään minne haluat sen sivun ( s) ...
Joten Miten luoda XSL ovat tiedostojen ja sisällyttää se sisällä toista XSL? Tässä on, miten ...

Vain tehdä asiat selväksi ... tässä on nopea lista tiedostoista syntyisi ... täällä, tulemme myös tietoa hedelmien ja vihannesten pääsivun nimeltään ruoka.

1. food.xml - xml tiedosto, johon muutosta haetaan
2. food.xsl - tärkeimmät XSL-tiedoston, joka muuttaa meidän food.xml
3. inc_fruits.xsl - XSL sisältää tiedoston, joka tekevät hedelmiä tietoa
4. inc_vegtables.xsl - XSL sisältää tiedoston, joka tekevät vetetables tietoa

I dont ajatella minulla on selittää paljon, koodit edellä mainitut seikat, on itsestään selvä ...

FOOD.XML


<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<date>July 2008</date>
<description>All about things we eat everyday</description>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>

<vegetables>
<item name="spinach" moreinfo="http://www.spinach.com">Spinach is full of iron</item>
<item name="asparagus" moreinfo="http://www.asparagus.com">Asparagus contains loads of vitamin D </item>
<item name="fenugreek" moreinfo="http://www.fenugreek.com">Fenugreek is rich in vitamin C</item>
</vegetables>
</food>


FOOD.XSL


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="inc_fruits.xsl" />
<xsl:include href="inc_vegetables.xsl" />
<xsl:template match="/">
<html>
<head>
<title>Title</title>
</head>
<body>
<h3><xsl:value-of select="/food/description" /></h3>
Modification Date : <xsl:value-of select="/food/date" />
<hr/>
<h5> About Fruits</h5>
<xsl:call-template name="about_fruits"/>

<hr/>
<h5> About Vegetables</h5>
<xsl:call-template name="about_vegetables"/>

<hr/>
</ Body>
</ Html>
</ Xsl: template>
</ Xsl: stylesheet>


INC_FRUITS.XSL

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:template name="about_fruits">
<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>


INC_VEGETABLES.XSL

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:template name="about_vegetables">
<xsl:for-each select="/food/vegetables/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Lataa kaikki edellä tiedostot täältä (252 lataukset)


2008 04 huhtikuu 2008

Työskentely XML Node määritteet XSLT

Jos käytät XML ja XSL, niin saatat törmännyt aika, kun on leikkiä määreitä XML solmujen sinua XSL. Ne ovat kuormien sivustoja pitkä hengästynyt tietoa tästä, mutta kukaan löysin olivat lyhyitä ja tarkkoja ... Tämä ei ole XML / XSL TUTORIAL, mutta minun yrittää laittaa keskustelutilaisuuteen jonkinlainen huijari lista ...

XML, että saamme työskennellä tämän näköinen ...

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>
</food>

Joten avulla alkaa muuttaa meidän edellä XML XSL

Esimerkki 1: Tuotteet arvo on valittu ominaisuus

<xsl:value-of select="/food/fruits/item[@name='orange']" /><br />
to get more information about <a href="{/food/fruits/item[@name='orange']/@moreinfo}" target="new" ><xsl:value-of select="/food/fruits/item[@name='orange']/@name" /> </a>

HTML tulos näyttää

Orange is the color and rich in vitamin C,
to get more information about <a href="http://www.orange.com" target="new">


Esimerkki 2: läpiohjaus ja näytetään kaikki XML-attribuuttien nimet ja niiden arvot

<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>,
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>

HTML tulos näyttää


attribute name : name, attribute value : mango
attribute name : moreinfo, attribute value : http://www.mango.com
attribute name : name, attribute value : banana
attribute name : moreinfo, attribute value : http://www.banana.com
attribute name : name, attribute value : orange
attribute name : moreinfo, attribute value : http://www.orange.com
attribute name : name, attribute value : Papaya
attribute name : moreinfo, attribute value : http://www.papaya.com


Lataa kaikki edellä tiedostot täältä (245 lataukset)



Tilaihme, aion pitää päivittää tähän uusia tuloksia ...


NDK home | Ilmaiseminen IT | ilmaiseminen Palate | ilmaiseminen Penmenship | ilmaiseminen Awe | ilmaista itseäni