2009 Апр 7 2009

Позивање више прозора онЛоад функција у Јавасцрипт

Херес још мало пеице ЈаваСцрипт-трикова да сам морао да копају око, јер ситуација је цомманед. У једном од мојих сајтова, имао сам ову ситуацију где сам два пута морао да спроведу "виндовс.онлоад". Прва ствар да би дошао до неискусног ума као што је мој (морам искрено рећи да, пошто сам био користећи ЈаваСцрипт оквире и библиотекама, ја сам форготтон да једноставне ствари на своју руку ... тужно али истинито), је следећа метода ...

 виндов.онлоад = онлоадфн1;
 виндов.онлоад = онлоадфн2;
 виндов.онлоад = онлоадфн3;
 итд ..

Жао нам је рећи, али то неће радити ... донт желе да разговарају о науку извршење искључили Јавасцрипт много ... али у складу са мог недавног искуства, само последња функција (онлоадфн3) ће лоше ствари се извршава.

У нормалним ситуацијама, за разлику од рудника (који ћу говорити о томе мало касније) ... могли сте да урадите неку од следећих радњи да изврши мутлипле онЛоад функције ....

Или нешто овако

 доОнЛоад функција () {
         онлоадфн1 ();
         онлоадфн2 ();
         онлоадфн3 ();
 }
 виндов.онлоад = доОнЛоад;

За моју тренутну ситуацију, ја не могу да користе од горе ...
Зашто морам да позовем виндовс.онлоад два пута, а да позивање две функције у оквиру једне онЛоад функцији? Овде је брз поглед на мој проблем изјави ...

"Моји Сите странице су структуиране као УордПресс Тема .... тј постоји заједнички Хеадер.пхп и Фоотер.пхп која бива укључена у све сајта страницама. Постоји онЛоад функција имплементаион у Фоотер.пхп да урадите неке заједничке функције онЛоад. И постоји неколико страница које треба да нешто сопственог онЛоад, осим оних који су радили на заједничком онЛоад функцији. Ако сам доделите повратни функцију директно на виндов.онлоад руковалац, она ће преко-вози претходно додељене повратних позива у Фоотер.пхп "

.... Да ли је мој проблем схватио :) ?

Добро! постоји неколико решења која сам нашли. Сви они су веома слични и углавном имплементионс од решења које је добио од Симона Виллисон ( хттп://симонвиллисон.нет/2004/Маи/26/аддЛоадЕвент/ ) ...

Решење:

Једноставно додајте овај јавасцрипт код на сајт ...

 Функција аддЛоадЕвент (фунц) {
     вар = олдонлоад виндов.онлоад;
     ако (типеоф виндов.онлоад = 'функција') {
        виндов.онлоад = функ
     Елсе {}
        виндов.онлоад = фунцтион () {
            ако (олдонлоад) {
                   олдонлоад ()
           }
           фунц ()
        }
    }
 }

И назовите га уместо уобичајеног "виндовс.онлоад"

 аддЛоадЕвент (ФунцтионТоРунОнПагеЛоад);
 аддЛоадЕвент (фунцтион () {
 / * Више кода * на Паге Лоад
 }); 

Предности овог фрагмент кода ...
1. Пре свега, то вам омогућава да имате више виндовс.онлоад догађаја, позвао из одвојених делова вашег кода, без оверриддинг претходну дефиницију
2. То је заиста ненаметљив. Може се сместити у датотеку са другим скрипти или у посебном фајлу.
3. Он ради чак и ако виндов.онлоад је већ постављена.


2008 Оцт 20 2008

ТЕКСТАРЕА Колапс проблем у КССЛ / КССЛТ


ПРОБЛЕМА ИЗЈАВА:
Налетео сам на овај проблем у вези тектареас у КССЛс. У једноставним речима, проблем настаје када имаш празан <тектареа> ознаку, онда ће га срушити до <ТЕКСТАРЕА />.
односно ако сте имали нешто овако на вашем КССЛ и КСМЛ података за тектареа вредности, враћа ништа ...

<тектареа наме='десцриптион'> <ксл:валуе-оф селецт="ДЕСЦРИПТИОН"/> </ тектареа>

Као бровсери не препознају ово, то ће изазвати остатак облику ХТМЛ покренете у текстуалном подручју.

Могућа решења:

У КССЛ, додајте не-растављање (простор) после КССЛ: Валуе таг.БЕВАРЕ, да се брине о овом додатног простора сте додали, током нострификација клијената страни ове области.

<тектареа наме='десцриптион'> <ксл:валуе-оф селецт="ДЕСЦРИПТИОН"/> </ тектареа>

Или
<ксл:валуе-оф селецт="цонцат (ДЕСЦРИПТИОН,'')"/>

Или
Убаците <ксл:валуе-оф селецт="@ункновн" /> ознаку указује на непознатом атрибута. Ово ће натерати ПХП КССЛТ парсер да генерише отварања и затварања таг текстуалног региона, чак и ако нема ништа између.

Или
Уметање поља <ксл:тект> садржи простор да натера ознаку затварања.

Међутим, иако су горе поменути решења може изгледати да бисте решили проблем, ја сам још увек није убеђен да су у праву и најбољих начина да га поправите. Ако постоји неки други бољи начин фиксирања овај каприц, молимо вас да обавестите нас.


2008 Оцт 14 2008

Разноврсност КССЛ условима тестирања (Збирка КССЛ: АКО и КССЛ: Када услови тестирања)

Сваки пут морам да урадим КССЛ: АКО или КССЛ: вхен тест, морам назад на референтним књигама. Никада изгледа да их запамтите. Мислила да ће бити више тамо, баш као ја, који би радије преферирају да имају све њих, могуће, на једном месту, спреман да се односи када је то потребно.

За оне који су нови ... Синтакса за КССЛ: АКО

<ксл:иф тест="екпрессион">
<- Садржај: предложак ->
</ КССЛ: ако>

КССЛ: ако / КССЛ: када Збирка тест
Услови испод су сви једноставни и разумљиву. Дакле, верујем да неће бити потребно пуно објашњења

<ксл:иф тест="поситион()=ласт()-1">
Ова последња, али ако један елемент на листи!
</ КССЛ: ако>

<ксл:иф тест="САЛАРИ> 5000 ">
Зарада ове особе је већи него у РС. 5000
</ КССЛ: ако>

<ксл:иф тест="цоунт(ЈОБС)> 3 ">
Постоји више од 3 радна места у овој листи!
</ КССЛ: ако>

<ксл:иф тест="(@ДЕПТ ='САЛЕС') или (@ЈОИНИЕАР = '1997')">
Ова особа је од продаје свог одељења или годином Учлањење је 1997
</ КССЛ: ако>

<ксл:иф тест="ЕКСПЕРИЕНЦЕ">
Ова особа има атлеаст Једно искуство за дете елемент.
</ КССЛ: ако>

<ксл:иф тест="@ХОББИ">
Особа има хоби атрибут.
</ КССЛ: ако>

Истом тексту услови могу се користити за КССЛ: Изаберите / КССЛ: КАДА као и

КССЛ: изабрати

КССЛТ КССЛ: изабери инструкција је слична КССЛ: ако већ има неколико кључних разлика:
• Један КССЛ: изабери елемент може тестирати више од једног услова и додати различите чворове у стаблу резултата на основу којих је услов истинит.
• КССЛ: одаберите елемент може имати подразумевани предложак за додавање до резултата дрвета ако ниједан од услова су испуњени. (Упореди КССЛ: ако, који нема еквивалент "друго" стање.)
• КССЛ: одаберите елемент има специфичне поделементи које су неопходне да би то функционисало, а можете ставити било добро формиране елементе које желите унутар једне КССЛ: ако елеменат.

<ксл:цхоосе>
<ксл:вхен тест="боолеан-екпрессион">
Урадите нешто када је овај боолеан-израз је ТУРЕ
</ КССЛ: када>
<ксл:отхервисе> Учините нешто друго </ КССЛ: у супротном>
</ КССЛ: изаберите>


2008 Оцт 13 2008

Токенизинг одредјену низа унутар КССЛ

Ако је ваш захтев је да подели чвор вредност у КСМЛ, који садржи одредјену низ вредности, у појединим ставкама, онда сте стигли на право место ... имају поглед на следећем примеру. Ако сте упознати са мало КСМЛ и КССЛ ... Ја не мислим да би било потребно никакво објашњење.
Такође, овај пример укључује коришћење КССЛ функција као што су: Цалл КССЛ-предлошка, КССЛ: субстринг-пре, КССЛ: субстринг-после, ако је то оно што сте после.

КСМЛ да се трансформишу (фоод.кмл): -
Претпоставимо да је задатак токенизе раздвојен зарезом ниске, у овим тагом "кључних речи"

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

КССЛ (фоод.ксл): -

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

Резултанта излаз ХТМЛ је: -

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

Непотребно је рећи ... само промените параметар "делимитр" на раздвајање по вашем избору


2008 Ауг 4 2008

Проблем са позиције () у КССЛ ... или је то?

Имао сам овај проблем, док страге стварање КССЛ данас. Тражили одговоре широм мреже, али цоулднт наћи било .... Заправо мислим! Ја напор знам шта је мој проблем, па шта тражим?

У сваком случају! Само у случају да имате тај исти проблем и некако превише стране моћи силе успео да слети вам на овој страници ... да би ми се захвалим тона ... А ако сте случајно дошли на овој страници из неког чудног судбином и да се деси да буде КССЛ програмер, ДО САДА НЕ ДАЈУ белешку о томе, за будући узрока, ако једног дана, да се суочи са овим питањем, онда сила не може бити са вама.

Проблем изјава:
Имам овај КСМЛ, где постоје два чворишта са више ставки у њему и ствари између ова два чвора имају један на један преписку. У следећем примеру, свака ставка у цвора <арраи наме="ПЛАИУРЛ" /> односи (одговара позиција) на ставку у цвора <арраи наме="СИТЕНАМЕ" />

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

Сада, имам петљу, где сам петља кроз <арраи наме="СИТЕНАМЕ">, и желим да се повезани објекат (на одговарајућу позицију) у <арраи наме="ПЛАИУРЛ">,

Шта вам је нормално да ће покушати да урадите је ...

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

СОРРИ! ОВО Вонт рад ... Ах! Сурписед ...

Сада сте вероватно желети да испробате, овако нешто ...

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

И опет то неце радити ... Сада сте гребање главу, покушавајући да контактирате свакога ко мислите да зна неке КССЛ и може бити од помоћи ... било покушате сваку другу опцију ... и даље то неће радити ... Па! То је оно што ми се десило атлеаст ...

Донт Очај! ПОКУШАЈ ОВО

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

ДОНТ АСК МЕ ЗАСТО ради. Узрок ја донт имати прави разлог ... ако то урадите! Молимо вас да пустите коментар. То може бити прилично корисно. Такође! ако имате бољи наслов за овај пост, то дроп ме линије :)


2008 Ауг 2 2008

Подешавање ДОЦТИПЕ у КССЛ

Прошле недеље сам направио прогессиве ХТМЛ / ЦСС распоред за клијента, тестиран је у ИЕ6 и ИЕ7 и ФФ 3, изгледало је сасвим у реду ... ДО! распоред отишао даље низ мануфацтинг циклуса. То није успело. Распоред на страници само елементи отишао свуда када ХТМЛ распоред је претворена у КССЛ и КСМЛ примењује на њега ... Штета!

Није могао да спава у реду током викенда, у очекивању понедељак ујутро, када ћу морати да поправи ову СХ **. Али сада има мало искусних у раду са оваквим ситуацијама (Бровсер Куиркс, мислим), знао сам то морао да уради ништа друго него ДОЦТИПЕ .... и било је ...

Проблем:
Желите контролу над ДОЦТИПЕ, јер ваша трансформација ће експлицитно укључити ДОЦТИПЕ подразумевани, и распоред ће бити ван за бацити.

Решење:
КССЛТ спецификације излазних обезбеђује методе за постављање на ДОЦТИПЕ на избору. Такође, за нас УИ девелопер-и, теме од интереса ће бити ХТМЛ излаз методе и КСМЛ излаз методе .

Добро! пре него што досади, овде је поправити.

На пример, ако сте имали следеће ДОЦТИПЕ ХТМЛ у вашој верзији:. -

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

Затим у КССЛ бисте морали да имате следеће: -

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

и на крају! да проверите да ли ваш излаз КССЛТ покорава на ДОЦТИПЕ сте одабрали.


2008 4. мај 2008

Укључи КССЛ унутар КССЛ

Ако КСМЛ / КССЛ трансформација је ваш домиан, онда постоје тренуци када желимо пеице динамичког кода који ће се користити библиотеку ставку (да се поново употребљив). Шта хоћу да кажем, вероватно се може учинити са овом примеру јасно сценарио.

Замислите да креирате сајт (и коришћењем КСМЛ, КССЛ трансфромс наравно) и већина страна имати Коментари модул. Добро! онда или копирате или налепите овај код на свакој страници шаблона (што да не немам реци, али се одржавање и дорада ноћну мору) или, још боље, направите УКЉУЧИТИ фајл који би могао да се повуче у где год ви то желите на вашој страници ( е) ...
Дакле, како ћемо направити КССЛ УКЉУЧИТИ фајл и укључује га у другој КССЛ фајл? Ево како ...

Само да се ствари јасно ... овде је брз списак датотека које би сте креирали ... овде, ми ћемо бити укључујући информације о воћа и поврћа у матичној страни се зове храна.

1. фоод.кмл - КСМЛ датотека са подацима на којима ће трансформација бити примењена
2. фоод.ксл - главни КССЛ фајл, који ће трансформисати наше фоод.кмл
3. инц_фруитс.ксл - КССЛ фајл који укључују пружаће воћа податке
4. инц_вегтаблес.ксл - КССЛ фајл који укључују пружаће вететаблес податке

И донт мислим да имам много објасним, кодови за наведене елементе, биће само објашњења ...

ФООД.КСМЛ


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


ФООД.КССЛ


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

<хр/>
</ БОДИ>
</ Хтмл>
</ Кссл: темплате>
</ КССЛ: стиловима>


ИНЦ_ФРУИТС.КССЛ

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


ИНЦ_ВЕГЕТАБЛЕС.КССЛ

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

Преузмите све горе наведене фајлове овде (252 Довнлоадс)


2008 Јан 4 2008

Рад са КСМЛ чвор атрибута у КССЛТ

Ако користите КСМЛ и КССЛ, онда сте можда наишли на време, када морате да играте са атрибутима и вредностима КСМЛ чворова у вама КССЛ-а. Они су гомила сајтова са дугог даха информација о овоме, али ни сам нашао биле су кратке и јасне ... ово није КСМЛ / КССЛ туториал, али мој покушај да се стави-заједно неку врсту варања листи ...

Узорак КСМЛ да ћемо рад са изгледа овако ...

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

Дакле Летс почети трансформацију наше горе КСМЛ помоћу КССЛ

Пример 1: Приказујем вредност на изабрани атрибута

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

ХТМЛ резултат ће изгледати

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


Пример 2: лоопинг кроз приказивање и све КСМЛ атрибут Имена и њихове вредности

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

ХТМЛ резултат ће изгледати


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


Преузмите све горе наведене фајлове овде (245 Довнлоадс)



Погледајте овај простор, ја ћу ажурирати овај са новим сазнањима ...


НДК Почетна | Изражавајући ИТ | Изражавајући Палате | Изражавајући Пенменсхип | Изражавајући страхопоштовање | Изражавајући Ја