2009 Március 7, 2009

Több Windows Calling onLoad Függvények Javascript

Eretnekségek másik kis peice a Javascript trükk, hogy meg kellett ásni körül, mert a helyzet commaned azt. Az egyik internetes oldalak, nem volt ez a helyzet, amikor kellett végrehajtani "windows.onload" kétszer. Az első dolog, ami jött, hogy egy tapasztalatlan szem előtt, mint az enyém (Azt kell mondani őszintén, hogy mivel én már a javascript keretrendszerek és könyvtárak, én forgotton, hogy nem egyszerű dolgokat a saját ... Szomorú, de igaz), a következő módszer ...

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

Sajnálom mondani, de ez nem megy ... nem akarunk, hogy megvitassák a végrehajtási tudománya Javascript sokat ... de az én közelmúlt tapasztalatai, csak az utolsó funkció (onloadfn3) rosszul lesz ténylegesen kerül végrehajtásra.

Normális helyzetben, ellentétben az enyém (ami fogok beszélni egy kicsit később) ... akkor tegye a következőket végrehajtani mutliple onload funkciót ....

Vagy valami ehhez hasonló

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

Az én jelenlegi helyzet, nem tudom használni sem a fenti ...
Miért kell hívnia windows.onload kétszer, hanem hogy felhívja a két funkció egyetlen onload funkciót? Itt gyors pillantást az én problémám ... nyilatkozat

"Saját hely oldalak struktúrája, mint a WordPress téma .... vagyis van közös footer.php header.php, és hogy lesz bekerült a oldalaihoz. Van egy onload funkciót végrehajtani azokat a footer.php csinálni néhány közös funkciók onload. És van néhány oldalon, hogy kell valamit a saját onload, kivéve azokat a feladatokat a közös onload funkciót. Ha hozzá callback függvényt közvetlenül a felvezető window.onload, akkor felülírjak korábban rendelt callback a footer.php "

.... Az én problémám megértette :) ?

Nos! van néhány megoldás, hogy tudtam megtalálni. Mindannyian nagyon hasonlóak, és főleg implementions egy adott megoldást Simon Willison ( http://simonwillison.net/2004/May/26/addLoadEvent/ ) ...

Megoldás:

Egyszerűen adja hozzá ezt a javascript kódot az oldal ...

 addLoadEvent funkció (funkció) {
     var = oldonload window.onload;
     if (typeof window.onload! = 'funkciójú') {
        func = window.onload
     Else {}
        window.onload = function () {
            if (oldonload) {
                   oldonload ()
           }
           func ()
        }
    }
 }

És hívj, ahelyett, hogy a szokásos "windows.onload"

 addLoadEvent (FunctionToRunOnPageLoad);
 addLoadEvent (function () {
 / * Több kódot futtatni az oldal betöltésénél *
 }); 

Előnye ennek a kódrészletet ...
1. Elsősorban Ez lehetővé teszi több windows.onload események hívott különálló részei a kódot anélkül, hogy a korábbi definíció overridding
2. Ez igazán feltűnő. Meg lehet helyezni egy fájlt a másik script, vagy egy külön fájlban.
3. Úgy működik, még akkor is, ha window.onload már be van állítva.


2008 Szeptember 20, 2008

Collapse TEXTAREA probléma XSL / XSLT


PROBLÉMA NYILATKOZAT:
Futottam ebbe a problémát illetően a XSLs szövegdobozokba. Egyszerű szavakkal, a probléma akkor keletkezik, ha van egy üres <textarea> tag, akkor össze fog omlani, hogy <textarea />.
vagyis ha volt valami hasonlót a XSL és az XML adatok a TEXTAREA érték visszatér semmi ...

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

Mivel a böngészők nem ismerik ezt, ez okozza a többi az űrlap HTML befut a szöveg területre.

Lehetséges megoldások:

Az XSL, adjunk hozzá egy nem törhető-tér () után a xsl: value tag.BEWARE, hogy vigyázzon ezt a külön hely van hozzá, közben kliens oldali érvényesítésének ezen a területen.

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

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

Vagy
Tegyen be egy <xsl:value-of select="@unknown" /> tag mutat egy ismeretlen attribútum. Ez ki fogja kényszeríteni a PHP XSLT feldolgozót, hogy létrehoz egy nyitó és záró szöveget terület tag, akkor is, ha semmi között.

Vagy
Tegyen be egy <xsl:text> mezőt tartalmazó helyet kényszeríteni a záró tag.

Ugyanakkor, ha a fent említett megoldások tűnhet, hogy oldja meg a problémát, még mindig nem vagyok meggyőződve arról, hogy igazuk van és a legjobb módja javítani. Ha van más, jobb módja a rögzítés a trükkje, kérem, ossza meg velünk.


2008 Szeptember 14, 2008

Különféle XSL Vizsgálati feltételek (Gyűjteménye xsl: if és xsl: MIKOR vizsgálati feltételei mellett)

Minden alkalommal, amikor meg kell csinálni egy xsl: if vagy XSL: a vizsga, én vissza a segédkönyvet. Soha nem úgy tűnik, hogy emlékszem rájuk. Gondoltam, nem lenne inkább kint, mint én, aki inkább szeretné, hogy mindannyian, lehetséges, egy helyen, készen arra hivatkozott, ha szükséges.

Azok számára, akik újak ... szintaxisa xsl: if

<xsl:if test="expression">
<! - Tartalom: sablon ->
</ Xsl: if>

Az xsl: if / xsl: a vizsga Collection
Az alábbi feltételek mindegyike egyszerű és magától értetődő. Szóval azt hiszem nem kell sok magyarázatot

<xsl:if test="position()=last()-1">
Ez az utolsó, de ha az egyik eleme a listán!
</ Xsl: if>

<xsl:if test="SALARY> 5000 ">
A fizetés személy nagyobb, mint Rs. 5000
</ Xsl: if>

<xsl:if test="count(JOBS)> 3 ">
Több mint 3 munkahely ebben a listában!
</ Xsl: if>

<xsl:if test="(@DEPT ='SALES') vagy (@JOINYEAR = '1997')">
Ez a személy az értékesítési részleg vagy a csatlakozás évében az 1997
</ Xsl: if>

<xsl:if test="EXPERIENCE">
Ez a személy van atleast egyik tapasztalatot gyerek elemét.
</ Xsl: if>

<xsl:if test="@HOBBY">
A személy egy hobbi attribútuma.
</ Xsl: if>

Ugyanez a szöveg feltételekkel lehetne használni XSL: Válassza ki / XSL: MIKOR is

xsl: válassz

XSLT xsl: choose utasítás hasonló xsl: ha viszont van néhány fontos különbség:
• Egy xsl: choose elem lehet próbálni több mint egy feltételt, és adjunk hozzá különböző csomópontok az eredmény fát, amely alapján a feltétel igaz.
• Az xsl: choose elem lehet egy alapértelmezett sablont hozzá az eredmény fát, ha egyik feltétel teljesül. (Vesd össze xsl: if, amelynek nincs megfelelője a "más" állapot.)
• Az xsl: choose elem sajátos subelements, amelyek ahhoz szükségesek, hogy működjön, amíg lehet tenni bármely jól formált kívánt elemeket belsejében egy xsl: if elemet.

<xsl:choose>
<xsl:when test="boolean-expression">
Tegyél valamit, amikor ez a kifejezés logikai-MEL
</ Xsl: amikor>
<xsl:otherwise> valami mást </ xsl: más>
</ Xsl: válasszon>


2008 Augusztus 13, 2008

Tokenizing elválasztott karakterlánc belsejében egy XSL

Ha a követelmény, hogy hasít a csomópont értékét az XML, amely tartalmaz egy tagolt karakterlánc érték, az egyes tételekre vonatkozóan, akkor elérte a megfelelő helyen ... vessen egy pillantást az alábbi példát. Ha ismeri egy kicsit az XML és XSL ... nem hiszem, hogy szüksége lenne minden magyarázat.
Továbbá, ez a példa is XSL használatával működik, mint xsl: call-template, xsl: substring-előtt, xsl: substring-after, ha ez az, amit ön után.

XML átalakításra (food.xml): -
Tegyük fel, hogy a feladat, hogy a string tokenize vesszővel elválasztott, a tag a "kulcsszavak"

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

Eredő HTML kimenet: -

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

Mondanom sem kell ... csak megváltoztatni a paraméter "delimitr" az elválasztó választott


2008 Augusztus 4, 2008

A probléma pozíció () az XSL ... vagy mégsem?

Volt ez a probléma kapacitású tároló létrehozása közben XSL ma. Kerestünk válaszokat az egész net, de nem tudott találni .... Igazából azt hiszem! Én tudom, mi dint az én problémám volt, így mit nézzek?

Különben is! Csak abban az esetben, ha ez ugyanaz a probléma nagyon is, és valahogy a hatalom az erő, sikerült leszállni ezen az oldalon ... akkor köszönd t ... És ha véletlenül szállt ezen az oldalon valami furcsa a sors, és ha történetesen 1 XSL fejlesztő, DO jegyezze ezt most, A JÖVŐ oka, ha néhány nap, akkor szembe ezzel a kérdéssel, akkor a FORCE lehet, hogy nem lehet veled.

Probléma nyilatkozata:
Én ezt az XML, ahol két csomópont több elemet, és az elemeket a két csomópont, egy-egy levelet. Az alábbi példában, akkor minden elem a csomópont <array name="PLAYURL" /> vonatkozik (a megfelelő helyeken), hogy egy elem a csomópont <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>

Most van egy hurok, ahol i áthidalás <array name="SITENAME">, és azt akarom, hogy a kapcsolódó elemet (a megfelelő helyeken) a <array name="PLAYURL">,

Mit kellene tennie, hogy megpróbál alapállapotban ...

<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! EZ nem fog működni ... Jaj! Surpised ...

Most akkor érdemes kipróbálni, valahogy így ...

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

És ez megint nem megy ... Most meg vakarja a fejét, megpróbálja felvenni a kapcsolatot aki úgy gondolja, tudja, néhány XSL és lehet bármilyen segítség ... megpróbál minden más lehetőséget ... és mégis ... Hát nem megy! Amit mi történt velem atleast ...

Dont kétségbeesés! TRY EZT

<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 Ask Me miért működik. Mert én dont joguk van oka ... ha megteszed! Kérjük, ne dobjon el egy megjegyzést. Lehet, hogy nagyon hasznos. Is! Ha jobb CÍM ezen a poszton, erre csepp én egy vonal :)


2008 Augusztus 2, 2008

DOCTYPE beállítása XSL

Múlt héten hoztam létre progessive HTML / CSS elrendezés az ügyfél számára, teszteltük az IE6, IE7 és FF 3, tökéletesen látszott ... AMÍG! Az elrendezés ment lejjebb a manufacting ciklust. Ez nem sikerült. Oldal elrendezés elemei csak ment az egész sor, amikor a HTML layout alakították XSL és XML vele szemben alkalmazott ... A fenébe!

Nem tudott aludni a hétvégén rendben, megelőlegezve a hétfő reggel, mikor kell majd kijavítani a SH **. De ma már egy kicsit experince foglalkozó ilyen jellegű helyzetek (Böngésző Quirks, úgy értem), tudtam, hogy köze lehet mást DOCTYPE .... és ez volt ...

A probléma:
Akarod felett a DOCTYPE, mivel a transzformáció lesz egy alapértelmezett DOCTYPE kifejezetten, és elrendezés lesz ki egy dobás.

A megoldás:
XSLT szemüveg szolgáltatja a kimeneti módszereket beállítani a DOCTYPE a choise. Szintén számunkra UI fejlesztők, a téma érdekes lenne HTML kimenet módszerek és XML módszerek .

Nos! mielőtt unatkozni, itt van a javítás.

Pl., Ha már a következő DOCTYPE HTML verzió: -

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

Majd az XSL akkor kellett volna a következő: -

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

És végül! Nem győződjön meg róla, XSLT kimeneti engedelmeskedik a DOCTYPE választott.


2008 Május 4., 2008

Tartalmazza XSL belül XSL

Ha az XML / XSL transzformáció van a domian, akkor vannak helyzetek, amikor akarunk peice Dinamikus kódot kell használni könyvtári tételt (kell tenni újra felhasználható). Arra gondolok, talán lehetne tenni ezzel a példa világosan forgatókönyv.

Képzeld el, weboldal készítés (és XML, XSL transfroms persze), és a legtöbb az oldalak lenne Comments modul. Nos! akkor vagy másolt, vagy be ezt a kódot minden oldal sablont (amit én nem is mondom, de a karbantartást és javítást egy rémálom), vagy még jobb, ha egy include fájlt hoz létre, amely lehet húzni a ha valaha is szeretne azt az oldalt ( s) ...
Szóval hogyan hozunk létre egy XSL include file tartalmazza, és ez belülről egy másik XSL fájlt? Íme, hogyan ...

Csak azért, hogy minden egyértelmű ... itt a gyors fájlok listáját hozhatja létre ... Itt, mi lesz információ, beleértve gyümölcsök és zöldségek egy szülőoldal nevű ételt.

1. food.xml - xml fájl adatok, amelyek az átalakulás alkalmazni fogják
2. food.xsl - fő XSL fájl, amelyek át fogják alakítani a food.xml
3. inc_fruits.xsl - XSL fájl tartalmazza, hogy lehetővé teszi majd, gyümölcsök adatok
4. inc_vegtables.xsl - XSL fájl tartalmazza, hogy lehetővé teszi majd, vetetables adatok

Nem hiszem, nekem sokat magyarázni, kódok a fent említett elemeken lesz magától értetődő ...

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>

Töltse le a fenti fájlt itt (257 letöltés)


2008 Április 4., 2008

Munka XML csomópont attribútumai t?

Ha az XML és XSL, akkor lehet, hogy találkoznak, egy idő, amikor el kell játszani körül tulajdonságok és értékek az XML csomópontok benned XSL. Ők rengeteg helyszínek hosszú kifulladó erről, de egyik sem találtam voltak rövid és pontos ... Ez nem XML / XSL tutorial, de a kísérletet tenni, össze valamiféle csalás lista ...

Az XML-mintát, hogy mi dolgozunk így néz ki ...

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

Így lehetővé teszi kezdődik átalakítja a fenti XML-XSL felhasználásával

1. példa: érték kijelzése egy kiválasztott jellemző

<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 eredmény így fog kinézni

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


2. példa: a loop és megjelenítése az összes XML-attribútum nevek és értékek

<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 eredmény így fog kinézni


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


Töltse le a fenti fájlt itt (251 letöltés)



Nézd ezt a helyet, én folyamatosan frissítenek az új eredmények ...


NDK home | Kifejezése IT | kifejezése szájpadlás | kifejezése Penmenship | kifejezése Awe | kifejezése Myself