2009 7. märts 2009

Üleskutse Mitu Windows OnLoad Funktsioonid JavaScript

Heres teise vähe tükk Javascript petmine et ma pidin kaevama ümber sest olukord commaned ta. Ühes oma veebilehti, mul oli see olukorras, kus ma pidin rakendama "windows.onload" kaks korda. Esimene asi, mis tuli kogenematu meeles nagu minul (ma pean ausalt ütlema, et kuna ma olen kasutanud javascript raamistike ja raamatukogud, olen forgotton teha lihtsaid asju minu enda ... kurb aga tõsi), on järgmine meetod ...

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

Vabandame öelda, kuid see harjumus tööd ... ei taha, et arutada täitmise teadus Javascript palju ... kuid vastavalt minu hiljutine kogemus, ainult viimane ülesanne (onloadfn3) on haige tegelikult saavad täidetud.

Tavaolukordades, erinevalt minu (kes ma rääkida veidi hiljem) ... mida võiks teha üks järgmistest täita mutliple allalaadimine toimib ....

Või midagi sellist

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

Minu praegune olukord, ma ei saa kasutada kas eespool ...
Miks mul on vaja helistada windows.onload kaks korda, pigem seda, et helistaja 2 funktsioonid ühes allalaadimine funktsioon? Siin on kiire pilk minu probleem avaldus ...

"Mu saiti on struktureeritud nagu WordPress teema .... st on olemas ühine header.php ja footer.php mis saab kaasata kõik saiti. On allalaadimine funktsioon Toetuslepingu sisse footer.php teha mõned ühised allalaadimine ülesandeid. Ja seal on mõned leheküljed, mis vajavad midagi oma OnLoad, välja arvatud teha ühise allalaadimine funktsioon. Kui ma anda tagasikutse funktsiooni otse window.onload handler, siis üle sõita varem omistatud kutse in footer.php "

.... On minu probleem aru :) ?

Hästi! on vähe lahendusi, et ma ei leia. Nad kõik on väga sarnased ning peamiselt implementions lahenduse antud Simon Willison ( http://simonwillison.net/2004/May/26/addLoadEvent/ ) ...

Lahendus:

Lihtsalt lisage see javascripti kood saidi ...

 funktsioon addLoadEvent (func) {
     var oldonload = window.onload;
     if (typeof window.onload! = 'funktsioon') {
        window.onload = func
     } Else {
        window.onload = function () {
            if (oldonload) {
                   oldonload ()
           }
           func ()
        }
    }
 }

Ja nimetavad seda mitte tavaline "windows.onload"

 addLoadEvent (FunctionToRunOnPageLoad);
 addLoadEvent (function () {
 / * Rohkem koodi käivitumise leheküljel koormus *
 }); 

Eeliseid selle koodijupi ...
1. Peamiselt See võimaldab teil on mitu windows.onload sündmused, helistas Eralda osa oma koodi, ilma overridding eelmise määratlus
2. See on tõesti märkamatu. Seda saab panna pilti oma teiste skripte või eraldi failis.
3. See toimib isegi siis, kui window.onload on juba määratud.


2008 20. september 2008

Textarea Collapse probleem XSL / XSLT


Probleemipüstitus:
Ma jooksin sinna probleem seoses textareas sisse XSLs. Lihtsamalt öeldes, probleem tekib siis, kui sul on tühi <textarea> tag, siis sulgeb ta <textarea />.
st kui sul oleks midagi järgmistest oma XSL ja XML andmed textarea väärtus, tagastab midagi ...

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

Kuna brauserid ei tunne seda, tekitab see ülejäänud vorm HTML joosta tekst.

Võimalikud lahendused:

Aastal XSL, lisada mitte-breaking-space () pärast xsl: value tag.BEWARE, hoolitseda selle lisaruumi lisasite ajal kliendipoolse kinnituste kohta selles valdkonnas.

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

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

Või
Sisesta <xsl:value-of select="@unknown" /> tag osutades teadmata atribuut. See sunnib PHP XSLT parser luua avamise ja sulgemise teksti ala tag, isegi kui see ei ole midagi vahel.

Või
Sisesta <xsl:text> väli, mis sisaldab ruumi sundida lõpusildi.

Siiski, kuigi eespool nimetatud lahendusi võib tunduda, et probleemi lahendada, ma olen ikka veel veendunud, et neil on õigus ja kuidas oleks kõige parem seda parandada. Kas on olemas mingi muu parem viis millega see konks, Palun ärge andke meile teada.


2008 14. september 2008

Valik XSL Katsetingimused (kogumine XSL: IF ja XSL: Kui katsetingimused)

Iga kord, kui ma pean tegema XSL: KUI või XSL: Kui test on mul tagasi minna teatmeteoseid. Ma ei tundu mäleta neid. Arvasin, et seal oleks seal, just nagu mina, kes pigem eelistavad nad kõik, võimalik, ühes kohas, valmis nimetatud, kui vaja.

Neile, kes on uus ... süntaks XSL: IF

<xsl:if test="expression">
<! - Sisu: template ->
</ Xsl: if>

Xsl: if / XSL: kui Test Collection
Tingimusi allpool on kõik lihtne ja mõistetav. Nii et ma usun, et ei pea palju selgitus

<xsl:if test="position()=last()-1">
See, kui eelviimasel element nimekirjas!
</ Xsl: if>

<xsl:if test="SALARY> 5000 ">
Palk see inimene on suurem kui Rs. 5000
</ Xsl: if>

<xsl:if test="count(JOBS)> 3 ">
Seal on rohkem kui 3 töökohti selles nimekirjas!
</ Xsl: if>

<xsl:if test="(@DEPT ='SALES') või (@JOINYEAR = '1997')">
See isik on pärit müügiosakond või tema aasta Liitumine on 1997
</ Xsl: if>

<xsl:if test="EXPERIENCE">
See inimene on atleast 1 KOGEMUS laps element.
</ Xsl: if>

<xsl:if test="@HOBBY">
Inimesel on hobi atribuut.
</ Xsl: if>

Sama teksti tingimused võiks kasutada XSL: Vali / XSL: kui ka

XSL: vali

XSLT oma XSL: vali juhis sarnaneb xsl: if kuid on mõned olulised erinevused:
• Üks XSL: vali element saab katsetada rohkem kui üks tingimus ja lisada erinevate sõlmede tulemuse puu, mille alusel tingimus on tõene.
• XSL: vali element võib olla vaikimisi malli lisada tulemus puu kui ükski tingimustest on täidetud. (Võrdle xsl: if, mis ei ole samaväärne "else" tingimus.)
• XSL: vali element on eraldi alamelementides, mis on vajalikud, et seda tööd, kuid võite panna kõik hästi arenenud elemente soovite sees XSL: kui element.

<xsl:choose>
<xsl:when test="boolean-expression">
Tee midagi, kui see boolean-väljend on TUUR
</ XSL: kui>
<xsl:otherwise> Kas midagi muud </ xsl: muidu>
</ XSL: vali>


2008 13. august 2008

Tokenizing Delimited String sees XSL

Kui Teie nõue on jagada sõlme väärtuse XML, mis sisaldab delimited string väärtuse, võetakse iga ühiku kohta, siis olete jõudnud õigesse kohta ... on pilk näites. Kui te olete tuttav natuke XML ja XSL ... Ma ei usu, siis oleks vaja mingit selgitust.
Ka selles näites sisaldab kasutamine XSL funktsioone nagu xsl: call-template, xsl: alamstring-enne, xsl: alamstring-pärast, kui see, mida olete pärast.

XML ümber (food.xml): -
Endale ülesandeks on tokenize string piiritletud koma, mis märksõnaga "märksõnad"

<?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>

Lõplikud väljund 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>

Ütlematagi selge ... lihtsalt muuta parameetri "delimitr", et eraldaja oma valik


2008 4. august 2008

Probleem positsioon () in XSL ... või on?

Mul oli see strage probleemi luues XSL täna. Otsis vastuseid kogu net, kuid couldnt leia .... Tegelikult ma arvan! Ma varal teada, mis mu probleem oli, et mida ma pean otsima?

Igatahes! Igaks juhuks teil on seesama probleem liiga ja millegipärast poolt võimu sunnivad sind õnnestus maanduda sellel lehel ... siis oleks tänada mind tonni ... Ja kui sa oled kogemata maandunud see leht mingil kummalisel saatust ja teil juhtub olema XSL arendaja, ei tee teadmiseks KOHE, tuleviku põhjusega, kui ühel päeval, siis nägu selles küsimuses, siis FORCE ei pruugi olla koos sinuga.

Probleem avaldus:
Mul on XML, kus on kaks tippu, kus mitu elementi ning seda teemad nende kahe tippude 00:59 kirjavahetus. Alltoodud näites iga objekti sõlme <array name="PLAYURL" /> seotud (positsioon), et toode on sõlm <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>

Nüüd mul on loop, kus i ahela kaudu <array name="SITENAME">, ja ma tahan saada seotud objekti (at positsioon) in <array name="PLAYURL">,

Mis siis oleks normaly proovida teha, 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! SELLE harjumus tööd ... Ah!! Surpised ...

Nüüd sa ilmselt tahad proovida, midagi sellist ...

<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 jälle see harjumus tööd ... Nüüd kriimustada oma pead, püüdes pöörduda igaüks, kes te arvate, teab mõned XSL ja võiks mingit abi ... püüad iga teine ​​võimalus ... ja veel see harjumus tööd ... Noh! Thats mis juhtus minuga atleast ...

Dont meeleheidet! Proovige seda

<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>

Ära küsi, miks see toimib. Sest ma dont on õigus põhjus ... kui sa teed! Palun ärge tilk kommentaari. See võib olla päris kasulikuks. Ka! kui teil on parem JAOTIS sellele ametikohale, ei tilk mulle joone :)


2008 2. august 2008

Milles DOCTYPE in XSL

Eelmisel nädalal tegin progessive HTML / CSS kujundus kliendi jaoks, testitakse seda IE6, IE7 ja FF 3, tundus täiesti hea ... kuni! paigutus läks edasiste manufacting vältel. See ei õnnestunud. Lehekülje paigutuse elemente läks kogu koht, kui HTML kujundus oli ümber XSL ja XML rakendada see ... kurb!

Ei saanud magada ok nädalavahetusel, et oodates esmaspäeva hommikul, kui ma pean seda parandada SH **. Aga nüüd on väike experince suhtlemisel Sellised olukorrad (Browser quirks, ma mõtlen), ma teadsin, et see oli pistmist midagi, kuid DOCTYPE .... ja see oli ...

Probleem:
Sa tahad üle DOCTYPE, kuna teie ümberkujundamine hõlmab vaikimisi DOCTYPE selgesõnaliselt, ja sa kujundus on välja Toss.

Lahendus:
XSLT specs pakub väljundit meetoditega, et määrata DOCTYPE on tootevalik. Ka meie jaoks UI arendajate huvitavatel teemadel oleks HTML väljund meetodeid ja XML väljund meetodeid .

Hästi! enne kui sa igav, siin on fix.

Sest nt., Kui sa olid järgmised DOCTYPE oma HTML versioon: -

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

Siis XSL oleksite on järgmised: -

<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 lõpuks! ei veenduge, et XSLT väljund kuuletub DOCTYPE olete valinud.


2008 4. mai 2008

Kaasa XSL sees XSL

Kui XML / XSL Muudab su Domian, siis on aegu, kui tahame tükk Dynamic koodi kasutada raamatukogu objekt (tuleb teha korduvkasutatavad). Mida ma mõtlen, ilmselt võiks teha selgemaks selle näiteks stsenaariumi.

Kujutage ette, olete loomas kodulehel (ja kasutades XML, XSL transfroms ofcourse) ja enamik lehti oleks Kommentaarid moodul. Hästi! siis kas sa kuuled või kleebi see kood iga lehekülje malli (mis ma dont on öelda, kuid teeb hoolduse ja ümbertegemine õudusunenägu) või veel parem, loote sisaldab faili, mida saaks tõmmatakse kus iganes sa tahad seda oma lehe ( s) ...
Nii Kuidas me loome XSL sisaldab faili ja lisada selle sees teise XSL faili? Siin on, kuidas ...

Just selleks, et asjad selgeks ... siin on kiire failide nimekirja, et teil oleks luua ... siin me ka infot puuviljade ja köögiviljade vanem leht nimega toitu.

1. food.xml - XML ​​fail mis ümberkujundamine hakatakse kohaldama
2. food.xsl - peamised XSL faili, mis muudab meie food.xml
3. inc_fruits.xsl - XSL sisaldab faili, mis muudab puu andmed
4. inc_vegtables.xsl - XSL sisaldab faili, mis muudab vetetables andmed

Ma ei usu mul selgitada palju, koodid nimetatud elementidest, on mõistetav ...

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: stiil>


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>

Lae kõigi eespool failid siin (249 downloads)


2008 4. aprill 2008

Töö XML Node atribuudid XSLT

Kui te kasutate XML ja XSL, siis oleks kohanud aeg, kui teil on mängida atribuudid ja väärtused XML tippe te XSL. Nad on koormatele saite pika Hengästynyt infot, kuid ükski leidsin oli lühike ja täpne ... See ei ole XML / XSL juhendaja, kuid minu katse panna-üheskoos mingi cheat nimekirja ...

Proovi XML, et me koostööd näeb välja selline ...

<?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>

Nii saab alustada muudavad meie üle XML kasutada XSL

Näide 1: Kaubad väärtusega valitud omadus

<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 tulemus hakkab nägema

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


Näide 2: kokkujooksmine läbi ja näitab kõiki XML atribuutide nimed ja nende väärtused

<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 tulemus hakkab nägema


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


Lae kõigi eespool failid siin (243 downloads)



Jälgi seda ruumi, ma hoian ajakohastamine seda avastustega ...


NDK kodus | Väljendades IT | väljendamine Maitse | väljendamine Penmenship | väljendamine Awe | väljendamine Myself