<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>&#8235;Htm - אחלה טיפים לבניית אתרים &#187; JavaScript&#8236;</title>	<atom:link href="http://www.htm.co.il/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.htm.co.il</link>
	<description>&#8235;מדריכים ומאמרים בנושא בניית אתרים. כל יום משהו חדש ללמוד, וליישם.&#8236;</description>	<lastBuildDate>Wed, 18 Jan 2012 09:32:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>il</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8235;שימוש בפקודת OnBeforeUnload לוידוא יציאה של המשתמש&#8236;</title>		<link>http://www.htm.co.il/2009/11/18/%d7%a9%d7%99%d7%9e%d7%95%d7%a9-%d7%91%d7%a4%d7%a7%d7%95%d7%93%d7%aa-onbeforeunload-%d7%9c%d7%95%d7%99%d7%93%d7%95%d7%90-%d7%99%d7%a6%d7%99%d7%90%d7%94-%d7%a9%d7%9c-%d7%94%d7%9e%d7%a9%d7%aa%d7%9e%d7%a9/</link>
		<comments>http://www.htm.co.il/2009/11/18/%d7%a9%d7%99%d7%9e%d7%95%d7%a9-%d7%91%d7%a4%d7%a7%d7%95%d7%93%d7%aa-onbeforeunload-%d7%9c%d7%95%d7%99%d7%93%d7%95%d7%90-%d7%99%d7%a6%d7%99%d7%90%d7%94-%d7%a9%d7%9c-%d7%94%d7%9e%d7%a9%d7%aa%d7%9e%d7%a9/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 23:14:58 +0000</pubDate>
		<dc:creator>&#8235;אורן רוט&#8236;</dc:creator>				<category><![CDATA[בניית אתרים]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[שימושיות]]></category>

		<guid isPermaLink="false">http://www.htm.co.il/?p=898</guid>
		<description><![CDATA[&#8235;היום אתן לכם קוד JS פשוט, שעל-ידי הוספתו לדף אינטרנט, הוא מקפיץ הודעת "האם אתה בטוח שברצונך לצאת מהדף?". כל זה על-מנת למנוע טעות של המשתמש שתגרור אחריה איבוד של חומר ותסכול רב.&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>יצירת ממשק נוח שמתחשב במשתמש, צריך לכוון את המשתמש לבצע את הפעולות הנכונות, אך בד בבד לנסות למנוע ממנו לעשות טעויות. משתמש יכול להיות מאוד מתוסכל כאשר התוכנה עשתה פעולה שהוא לא התכוון לה וכעת אין באפשרותו לעשות דבר.<br />
היום אני אתן לכם קוד של אחת הטכניקות המוכרות לנו, היא השאלה שצצה כאשר משתמש מנסה לצאת מדף האינטרנט והדפדפן שואל &quot;האם אתה בטוח?&quot;. </p>
<div id="DemoAndCodeBtns"><a id="demoLink" href="http://www.htm.co.il/lab/onBefore/" target="_blank"><span>&lt;</span>דוגמא<span>&gt;</span></a></div>
<p>בימים אלה אני עובד על בניית מערכת ניהול תוכן בעזרת ה-framework של Zend. כחלק ממערכת ניהול תוכן, בניתי כמובן גם חלק באתר בו עורכים עמודי תוכן. הדף בנוי מתיבות טקסט שונות ועיקרו הוא תיבת הטקסט עם עורך הטקסט, שם נכתב התוכן העיקרי.<br />
אתם בוודאי מכירים את הסיטואציה, הזנתם תכנים רבים בעמוד עריכה כלשהו באינטרנט, לחצתם על כפתור כלשהו שהעביר אתכם לעמוד אחר, וכל המידע שהקלדתם נעלם ולא יחזור.</p>
<p>אני החלטתי שבמערכת שלי אני רוצה לעזור למשתמש ולשאול אותו, האם הוא בטוח שהוא רוצה לצאת מהדף, חיפשתי קצת באינטרנט ומצאתי את פקודת ה-Javascript החביבה: <strong>OnBeforeUnload</strong>.</p>
<p>השם הארוך הזה, הוא למעשה Event, שמבצע קריאה לפונקציה כאשר המשתמש מנסה לצאת מהדף (לא משנה אם לחץ על כפתור Back, על לינק בדף או אפילו לחץ על סגירת הדפדפן), הפונקציה שמתלווה ל-Event יכולה להחזיר מחרוזות או ערך בוליאני (true או false).</p>
<p>הוסיפו את הקוד הבא לדף HTML, וכך הדפדפן יציג שאלה למשתמש לפני סגירת הדף:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; window.<span style="color: #660066;">onbeforeunload</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">'כל המידע שלא נשמר יאבד!'</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p>שימו לב שהטקסט בעברית (&quot;כל המידע שלא נשמר יאבד!&quot;), הוא טקסט שיתווסף להודעה הקבועה של הדפדפן במבנה הבא:<br />
<div class="wp-caption alignnone" style="width: 495px"><img alt="עזרו למשתמש שלכם למנוע טעות" src="/wp-content/uploads/2009/11/onBefore.jpg" title="onBefore" width="485" height="205" /><p class="wp-caption-text">עזרו למשתמש שלכם למנוע טעות</p></div></p>
<p>בבדיקתי אם הדפדפנים השונים, chrome ו-Safari לא תמכו בהודעות בעברית.<br />
שימו לב שאופרה מאז ומתמיד לא תמכה ב-OnBeforeUnload, כך שהקוד הנ&quot;ל לא יעבוד בדפדפן אופרה כלל.</p>
<p>אני הוספתי את הקוד הזה לדפים שבהם עורכים טקסט רב ובמידה והעבודה לא נשמרה.</p>
<h4 style="margin:0 0 10px 0;">אשמח לשמוע, איפה אתם מצאתם שימוש לקוד הזה?</h4>
<h3>עוד באותו נושא:</h3><ul class="related_post"><li  class="relatedPost"><a href="http://www.htm.co.il/2009/12/11/%d7%98%d7%a4%d7%a1%d7%99%d7%9d-%d7%9c%d7%9e%d7%99-%d7%96%d7%94-%d7%97%d7%a9%d7%95%d7%91-%d7%a4%d7%99%d7%94%d7%95%d7%a7/" title="טפסים? למי זה חשוב? &#8212;פיהוק&#8212;"><img src="http://htm.co.il/wp-content/post-images/915.jpg" />טפסים? למי זה חשוב? &#8212;פיהוק&#8212;</a><div style="clear: both;"></div></li><li  class="relatedPost"><a href="http://www.htm.co.il/2009/11/13/%d7%a1%d7%99%d7%9b%d7%95%d7%9d-%d7%a9%d7%9c-%d7%99%d7%95%d7%9d-%d7%94%d7%a9%d7%99%d7%9e%d7%95%d7%a9%d7%99%d7%95%d7%aa/" title="סיכום של יום השימושיות"><img src="http://htm.co.il/wp-content/post-images/837.jpg" />סיכום של יום השימושיות</a><div style="clear: both;"></div></li></ul></div>]]></content:encoded>			<wfw:commentRss>http://www.htm.co.il/2009/11/18/%d7%a9%d7%99%d7%9e%d7%95%d7%a9-%d7%91%d7%a4%d7%a7%d7%95%d7%93%d7%aa-onbeforeunload-%d7%9c%d7%95%d7%99%d7%93%d7%95%d7%90-%d7%99%d7%a6%d7%99%d7%90%d7%94-%d7%a9%d7%9c-%d7%94%d7%9e%d7%a9%d7%aa%d7%9e%d7%a9/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>&#8235;היפוך של אנגלית לעברית באמצעות AJAX&#8236;</title>		<link>http://www.htm.co.il/2009/09/30/%d7%94%d7%99%d7%a4%d7%95%d7%9a-%d7%a9%d7%9c-%d7%90%d7%a0%d7%92%d7%9c%d7%99%d7%aa-%d7%9c%d7%a2%d7%91%d7%a8%d7%99%d7%aa-%d7%91%d7%90%d7%9e%d7%a6%d7%a2%d7%95%d7%aa-ajax/</link>
		<comments>http://www.htm.co.il/2009/09/30/%d7%94%d7%99%d7%a4%d7%95%d7%9a-%d7%a9%d7%9c-%d7%90%d7%a0%d7%92%d7%9c%d7%99%d7%aa-%d7%9c%d7%a2%d7%91%d7%a8%d7%99%d7%aa-%d7%91%d7%90%d7%9e%d7%a6%d7%a2%d7%95%d7%aa-ajax/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 08:35:40 +0000</pubDate>
		<dc:creator>&#8235;אורן רוט&#8236;</dc:creator>				<category><![CDATA[בניית אתרים]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[תווים]]></category>

		<guid isPermaLink="false">http://www.htm.co.il/?p=627</guid>
		<description><![CDATA[&#8235;קרה לכם פעם שרציתם לכתוב בעברית אבל כל מה שהוצג שהרמתם את הראש היה, TU; ZV AUC ERV. במדריך הזה אני מציע פתרון שמשלב AJAX ו-jQuery וגורם לתיבת טקסט להחליף כל תו שנכנס אליה באנגלית לתו המקביל העברי שלה (במקלדת).&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>אתם בטוח מכירים את זה שאתם רוצים לכתוב טקסט בעברית ואז במקום &quot;לא נראה לי&quot; אתם מקבלים על המסך &quot;kt brtv kh&quot;, אבל לא לפני שהחבר לידכם מספיק להוציא צעקת יאוש של &quot;אווו אוו אוו, אתה כותב באנגלית&quot;. אם הזדהתם עם הראשון אז אתם בטוח מכירים את זה שיש שדות טקסט מסויימים שמוכנים לקבל רק עברית, אז עד שימציאו שדות יעודיים לשפה אחת (אולי HTML5?) אני מגיש לכם כאן פתרון פשוט למימוש, שיגרום להחלפה מידית של טקסט שמוזן באנגלית בשדה מסויים לעברית.</p>
<div id="DemoAndCodeBtns"><a href="http://htm.co.il/lab/ajaxText" target="_blank" id="demoLink"><span>&lt;</span>דוגמא<span>&gt;</span></a><a href="http://htm.co.il/lab/ajaxText/ajaxText.rar" target="_blank"><span>&lt;</span>קוד<span>&gt;</span></a></div>
<p>חוץ מבאתר &quot;אגד&quot; אני לא זוכר איפה ראיתי דוגמא לשדה טקסט שהופך תווים באנגלית לעברית, תוך כדי הזנתם. מה שאגד עשו שם ואני מימשתי בדוגמא הזאת, הוא למעשה שדה טקסט פשוט שמאפשר להכניס לתוכו רק תווים בשפה העברית וכאשר מנסים להכניס תווים בשפה האנגלית הוא הופך תוך כדי (בלי שהגולש אפילו שם לב) את התווים לעברית.<br />
מה שטוב בקוד כזה הוא שהוא חוסך הרבה זמן לגולש (ותסכול) במידה והוא טעה, וכן נותן אינדקציה לכך ששדה הטקסט הנוכחי חייב להיות בעברית בלבד.</p>
<p>בואו נעבור כעת לקוד, אנחנו נתחיל עם ה-HTML:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span><br />
...<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">label</span> <span style="color: #000066;">for</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;textHeb&quot;</span>&gt;</span>הכנס כאן את הטקסט (כדאי לנסות אנגלית): <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">label</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">textarea</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;textHeb&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;textHeb&quot;</span> <span style="color: #000066;">onkeyup</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;ajaxFunction();&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">textarea</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span><br />
&nbsp; &nbsp; ....<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></div></td></tr></tbody></table></div>
<p>כל מה שיצרנו זה טופס ובתוכו textarea עם ID ושם-&quot;textHeb&quot;.  בנוסף הוספנו לו קריאה לפונקציה ajaxFunction (שאותה ניצור בהמשך) כאשר לוחצים על תו &#8211; כלומר, כאשר מקלידים בתוך הטופס, לאחר כל הקלדה קוראים לפונ' ajaxFunction.</p>
<p>כעת נעבור לכתיבת קוד ה-AJAX. למי שלא יודע <abbr title="Asynchronous JavaScript And XML">AJAX</abbr> היא לא שפה, אלא למעשה טכניקה לשילוב של JS עם גישה לשרת (דרך פרוטוקול XMLHttpRequest). ישנם כמה דרכים למימוש הטכניקה הזו, אני בחרתי לדעתי בפשוטה מכולם והיא מימוש AJAX בשילוב עם ספריית ה-JS השימושית, jQuery.<br />
היתרון הגלום בשילוב הזה הוא כמו בכל קוד jQuery, המימוש הרבה יותר פשוט וקצר. אז בואו נעיף מבט בקוד שמתווסף לנו בין תגיות ה-Head:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot;/&gt;&lt;/script&gt;<br />
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">function</span> ajaxFunction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url<span style="color: #339933;">:</span> <span style="color: #3366CC;">'heb.php?textHeb='</span><span style="color: #339933;">+</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;textarea[name=textHeb]&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type<span style="color: #339933;">:</span> <span style="color: #3366CC;">'GET'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; timeout<span style="color: #339933;">:</span> 1000<span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; success<span style="color: #339933;">:</span> ...<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p>אם זה נראה קצת מסובך אז עוד מעט הכל יראה מאוד פשוט. נתחיל, בשורה הראשונה אנחנו מוסיפים קישור לספריית ה-jQuery. עוד לא הסברתי את זה באף מאמר כאן אבל הסיבה שאני מקשר לספריה שנמצאת בגוגל ולא מקשר לספריה שנמצאת בשרת שלי היא מכיוון ו-jQuery היא ספרייה מאוד שימושית ויש הרבה מאוד סיכוי שהגולש שנכנס לאתר שלי כבר היה באתר אחר בו השתמשו ב-jQuery (דרך גוגל) והספרייה שמורה לו במטמון. כך אני יכול לחסוך את זמן הטעינה של הספרייה.<br />
בשורה השלישית אנחנו יוצרים את הפונקציה ajaxFunction, הפונקציה שקוראים לה לאחר כל הקלדה בתיבת הטקסט שלנו.<br />
כעת אנחנו פונים למימוש של ajax ב-jQuery (שורה 4). בפנייה לאג'קס נפתחים לפנינו הרבה אופציות. אני השתמשתי כאן בארבעה משתנים:</p>
<ul>
<li>url</li>
<li>type</li>
<li>timeout</li>
<li>success</li>
</ul>
<p>המשתנה הראשון מכיל את כתובת אליה וממנה האג'קס שולח ומקבל נתונים, אנחנו נחזור אליו. המשתנה השני קובע באיזה צורה אנחנו שולחים את הנתונים (get או post). המשתנה השלישי דיי מובן משמו, משך הזמן ל-timeout (במילי שניות, 1000 = שניה אחת). במשתנה הרביעי אנחנו כותבים את הפעולות שאנחנו רוצים לבצע ברגע שהפעולה בוצעה בהצלחה.</p>
<p>בואו נחזור שנייה לתאוריה, מה שאנחנו רוצים שיקרה הוא שכאשר משתמש כותב בתיבת הטקסט שלנו, הטקסט ישלח לאחר כל הקלדה של אות לקובץ חיצוני (במקרה שלנו heb.php). קובץ זה יעבור על הטקסט שנשלח אליו, ויחליף כל תו באנגלית לתו המקביל לו (במקלדת) בעברית, ולבסוף ידפיס את המחרוזת בעברית.</p>
<p>בואו נביט שוב במשתנה ה-url (שורה 5). אנחנו בעצם פונים לקובץ ה-PHP שלנו ומעבירים לו משתנה GET בשם, textHeb. המתשנה מכיל את הערך של תיבת הטקסט שלנו. אני לא אעבור איתכם על קובץ ה-PHP (אתם מוזמנים להוריד את הקובץ ולהביט בעצמכם דרך הכפתור &quot;קוד&quot; בתחילת המדריך), אבל אני אדגיש שתי שורות חשובות מתוך הקובץ.</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Cache-Control: no-cache&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Type: text/html; charset=utf-8'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>השורה הראשונה בעצם אומרת לדפדפן לא לשמור את הדף במטמון (חשוב, על מנת שנוכל לקבל נתונים עדכניים כל הזמן). בשורה השנייה אנחנו קובעים את המסמך בקידוד utf-8 &#8211; הנקודה הזו מאוד קריטית אם אנחנו רוצים לראות עברית ולא רק קישקושים.</p>
<p>זה הכל לקובץ ה-PHP, כמו שאמרנו הקובץ מקבל מחרוזת מלאה בתווים (גם עברית גם אנגלית), כל תו אנגלי נהפך לתו המקביל-מקלדת בעברית שלו ולבסוף מוחזרת המחרוזת בעברית בלבד. כעת אנחנו צריכים לעדכן את תיבת הטקסט, הפעולה הזו מתרחשת תחת המתשנה success.</p>
<p>חזרנו לקוד ה-JS שלנו, כעת בואו נראה מה מופיע תחת המשתנה success:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">success<span style="color: #339933;">:</span> <br />
<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>text<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; textLen <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;textarea[name=textHeb]&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>text.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> textLen<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;textarea[name=textHeb]&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>text<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;textarea[name=textHeb]&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span>textLen<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">' '</span> <span style="color: #339933;">&amp;&amp;</span> text.<span style="color: #660066;">length</span><span style="color: #339933;">+</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">==</span> textLen<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;textarea[name=textHeb]&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>text<span style="color: #339933;">+</span><span style="color: #3366CC;">' '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>בתוך המשתנה success יצרנו פונקציה עם משתנה text. המתשנה text הוא למעשה הערך שמוחזר (הודפס) בקובץ ה-PHP.<br />
למעשה יכלנו לקצר את כל הקוד ולכתוב רק:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">success<span style="color: #339933;">:</span> <br />
<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>text<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;textarea[name=textHeb]&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>text<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>הקוד הנ&quot;ל למעשה מכניס את הערך המוחזר מקובץ ה-PHP לתוך תיבת הטקסט שלנו. הבעיה היא שאנחנו נתקלים בשני באגים. הבאג הראשון מופיע כאשר המשתמש מקליד טקסט והשרת מחזיר תגובה בזמן ההקלדה ומוחק לו את סוף המשפט שהוא כתב (פעולת המרת האנגלית בעברית לוקחת זמן ובנתיים המשתמש יכול להכניס עוד תווים). לשם כך העברתי את המחרוזת החוזרת בדיקה לראות אם אורך המחרוזת שווה לאורך תיבת הטקסט שלנו, ורק במקרה כזה יתבצע ההחלפה (שורה 4).<br />
הבאג השני הוא שכאשר התו האחרון שנשלח המחרוזת הוא סימן רווח, התו יעלם מכיוון ולא ניתן לשלוח רווחים בוסף מחרוזות. במקרה כזה אני שוב מוודא שאורך תיבת הטקסט שווה לאורך המחרוזת שחזרה מהשרת (+1) ומעדכן את תיבת הטקסט במחרוזת המוחזרת + סימן רווח.</p>
<p><ins datetime="2009-09-30T13:24:48+00:00">לסיום אני רק רוצה לציין שהמימוש כאן ב-AJAX הוא לא הכרחי ואפשר לעשות את הבדיקות וההחלפה ב-JS בלבד, הסיבה שהשתמשתי ב-AJAX היא על מנת להדגים את הטכנולוגיה ואת הפשטות של הפעלת AJAX באמצעות jQuery.</ins><br />
זה הכל, מקווה שהייתי ברור לכם, אשמח לשמוע מה אתם חושבים על הקוד וגם לענות על שאלות כאן למטה בתגובות.</p>
<h3>עוד באותו נושא:</h3><ul class="related_post"><li  class="relatedPost"><a href="http://www.htm.co.il/2009/12/15/%d7%94%d7%95%d7%a1%d7%a4%d7%aa-%d7%9b%d7%aa%d7%95%d7%91%d7%99%d7%95%d7%aa-%d7%9c%d7%aa%d7%92%d7%99%d7%aa-%d7%95%d7%99%d7%93%d7%90%d7%95/" title="<!--:il-->הוספת כתוביות לתגית וידאו<!--:--><!--:en-->Adding subtitles to a video tag<!--:-->"><img src="http://htm.co.il/wp-content/post-images/973.jpg" /><!--:il-->הוספת כתוביות לתגית וידאו<!--:--><!--:en-->Adding subtitles to a video tag<!--:--></a><div style="clear: both;"></div></li><li  class="relatedPost"><a href="http://www.htm.co.il/2009/11/15/%d7%9e%d7%a4%d7%aa-%d7%90%d7%aa%d7%a8-%d7%a6%d7%91%d7%a2%d7%95%d7%a0%d7%99%d7%aa-%d7%91%d7%a2%d7%96%d7%a8%d7%aa-jquery/" title="מפת אתר צבעונית בעזרת jQuery"><img src="http://htm.co.il/wp-content/post-images/859.jpg" />מפת אתר צבעונית בעזרת jQuery</a><div style="clear: both;"></div></li></ul></div>]]></content:encoded>			<wfw:commentRss>http://www.htm.co.il/2009/09/30/%d7%94%d7%99%d7%a4%d7%95%d7%9a-%d7%a9%d7%9c-%d7%90%d7%a0%d7%92%d7%9c%d7%99%d7%aa-%d7%9c%d7%a2%d7%91%d7%a8%d7%99%d7%aa-%d7%91%d7%90%d7%9e%d7%a6%d7%a2%d7%95%d7%aa-ajax/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>&#8235;שימוש בפונטים בלתי רגילים, הפעם: cufon&#8236;</title>		<link>http://www.htm.co.il/2009/09/20/%d7%a9%d7%99%d7%9e%d7%95%d7%a9-%d7%91%d7%a4%d7%95%d7%a0%d7%98%d7%99%d7%9d-%d7%91%d7%9c%d7%aa%d7%99-%d7%a8%d7%92%d7%99%d7%9c%d7%99%d7%9d-%d7%94%d7%a4%d7%a2%d7%9d-cufon/</link>
		<comments>http://www.htm.co.il/2009/09/20/%d7%a9%d7%99%d7%9e%d7%95%d7%a9-%d7%91%d7%a4%d7%95%d7%a0%d7%98%d7%99%d7%9d-%d7%91%d7%9c%d7%aa%d7%99-%d7%a8%d7%92%d7%99%d7%9c%d7%99%d7%9d-%d7%94%d7%a4%d7%a2%d7%9d-cufon/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 18:44:11 +0000</pubDate>
		<dc:creator>&#8235;אורן רוט&#8236;</dc:creator>				<category><![CDATA[עיצוב אתרים]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[sIFR]]></category>
		<category><![CDATA[פונטים]]></category>

		<guid isPermaLink="false">http://www.htm.co.il/?p=458</guid>
		<description><![CDATA[&#8235;כאשר CSS3 בפתח ואיתו האפשרות לשימוש בפונטים מיוחדים, מאמר זה נותן פתרון חילופי, cufon שמו, ומסביר איך להשתמש בפונטים מיוחדים ולמה cufon עדיפה על-פני השימוש ב-sIFR ו-FLIR.&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>כתבתי באתר הזה, הרבה מאוד מאמרים על טכניקה של שימוש בפונטים בלתי רגילים &#8211; פונטים שלא מותקנים לכולם על המחשב ולכן אי אפשר להשתמש בהם בטקסט פשוט לאתר. בעוד אנחנו קרובים מאוד להשקת CSS3, בו יהיה אפשר להשתמש בכל פונט איזוטרי שתעלו על דעתכם, אני רוצה להסביר לכם על טכניקה מאוד פשוטה, שמה <strong>cufon</strong>, להצגת פונטים בלתי רגילים כתמונות. למה דווקא עכשיו? כי, CSS3 לא נתמך ולא יתמך ברוב הדפדנים שקיימים היום בעולם (יקח זמן עד שהוא יתפוס את השוק) ובנתיים צריכים למצוא פתרון להצגת פונטים.</p>
<div id="DemoAndCodeBtns"><a href="http://www.htm.co.il/lab/cufon/cufon.rar" target="_blank"><span>&lt;</span>קוד<span>&gt;</span></a></div>
<p>האמת שהמאמר הזה היה צריך להיות על טכניקה אחרת, FLIR, גם טכניקה שמחליפה כותרות בתמונות, כמו בדוגמא הזאת:</p>
<h3>איזה כיף לכתוב בכל פונט שמתחשק לי.</h3>
<p>הסיבה שבחרתי להציג לכם דווקא את cufon ולא את FLIR היא מכיוון ו-cufon לא תלויה בשפת שרת (PHP במקרה של FLIR), והמימוש שלה ממש ממש פשוט. (לא התנסיתי בFLIR אבל אתם מוזמנים לספר לי בתגובות).</p>
<p>עכשיו לפני שניגש לעניין ואני אתחיל להסביר לכם איך מממשים את cufon, אני אציג לכם את היתרונות והחסרונות של טכניקה זו:</p>
<h3>יתרונות</h3>
<ul>
<li>מימוש פשוט מאוד (הרבה יותר פשוט מ-<a href="http://www.htm.co.il/2009/02/09/%D7%94%D7%93%D7%A8%D7%9A-%D7%9C%D7%A9%D7%99%D7%9C%D7%95%D7%91-sifr-%D7%91%D7%90%D7%AA%D7%A8%D7%9B%D7%9D/">sIFR</a> למשל)</li>
<li>טכניקה שלא תלויה בצד שרת (בניגוד לFLIR) או בפלאש (בניגוד ל-sIFR)</li>
<li>פועלת במהירות</li>
</ul>
<h3>חסרונות</h3>
<ul>
<li>תלויה ב-javascript</li>
<li>אי אפשר לסמן טקסט (חסרון משמעותי לפעמים)</li>
<li>אין אפשרות להציג צבע שונה כאשר העכבר נמצא על הטקטס</li>
</ul>
<p>אני רוצה להוסיף על החסרון הראשון שאם הדפדפן לא מפעיל JS אז לא יוצג הפונט המיוחד, ויוצג הטקסט הרגיל שזה לא כל-כך נורא.</p>
<p>טוב עכשיו אחרי שעברנו על כל היתרונות והחסרונות של cufon, נעבור לאופן המימוש.</p>
<h3>הורדת הקבצים</h3>
<p>כמו תמיד נתחיל בהורדת הקבצים, ניכנס ל<a href="http://cufon.shoqolate.com/generate/">אתר cufon</a> ונוריד את קובץ ה-JS שנמצא תחת הכפתור &quot;download&quot; (או ישירות <a href="http://cufon.shoqolate.com/js/cufon-yui.js">מהלינק הזה</a>)</p>
<p>כעת אנחנו צריכים להמיר את הפונט אותו אנו רוצים להציג בקובץ JS נוסף, את הפעולה הזאת עושים דרך אתר cufon. ההסבר המלא בסרטון הבא:</p>
<p><object width="560" height="345" data="http://screenr.com/Content/assets/screenr_0817090731.swf" type="application/x-shockwave-flash"><param name="flashvars" value="i=13041" /><param name="allowFullScreen" value="true" /><param name="src" value="http://screenr.com/Content/assets/screenr_0817090731.swf" /><param name="allowfullscreen" value="true" /></object></p>
<p>כעת שסיימנו ויצרנו את קובץ ה-JS לפונט שלנו, כל מה שנותר לנו הוא להגדיר בקובץ הHTML הרצוי להשתמש בפונט המיוחד.</p>
<h3>אתחול הגדרות לקובץ</h3>
<p>דבר ראשון שנעשה הוא להכניס בין תגיות ה-HEAD קישור לקבצי ה-JS שהורדנו:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;js/cufon-yui.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;js/example-Font_500.font.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></div></td></tr></tbody></table></div>
<p><span style="color: #993366;">הקובץ השני צריך להיות לפי השם של הפונט שאתם בחרתם. </span></p>
<p>כעת נוסיף קוד JS נוסף על מנת להפעיל את cufon:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span><br />
$(function(){<br />
Cufon.replace('h3');<br />
});<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></div></td></tr></tbody></table></div>
<p><span style="color: #993366;">במקום h3 רשמו את שם האלמנט בו אתם רוצים להחיל את הפונט המיוחד.</span></p>
<p>ככה צריך להיראות בסופו של דבר הHTML שלכם:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
...<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;js/cufon-yui.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;js/BN_Traktor_400.font.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span><br />
$(function(){<br />
Cufon.replace('h3');<br />
});<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
...<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
...<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>אני פסקה עם פונט מיוחד<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h3</span>&gt;</span><br />
...<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></div></td></tr></tbody></table></div>
<p>כל זה טוב ויפה אבל אם תנסו את זה בעצמכם תראו שיש בעיה חמורה, אם כי לא מפתיעה- כל הטקסט בעברית מהופך :/</p>
<p>אל דאגה תרתי ברשת אחר פתרון ובבלוג של האתר <a href="http://blog.safsal-multimedia.com/code/using-cufon-with-right-to-left-text/"><em>ספסל</em></a> מצאתי פתרון לבעיית העברית (תודות לשירה).</p>
<h3>עברית שפה קשה</h3>
<p>הפתרון הוא דיי פשוט, מריצים סקריפט (cufonRTL.js) שעובר על המחרוזת בתוך האובייקט הנבחר (בדוגמא שלנו H3), הסקריפט מוסיף למחרוזת תגית&lt;bdo&gt; והופכת את כיוון (Direction) הטקסט למשמאל-לימין. אח&quot;כ הסקריפט מפריד בין כל התווים במחרוזת הופך את הסדר שלהם ומחבר בחזרה, אתם מוזמנים לצפות בקוד ולהבין.</p>
<p>הסקריפט הזה נתמך ע&quot;י jQuery ולכן צריך גם להוסיף את הספרייה הזו לHTML שלנו. היתרון בהוספת jQuery היא  שכעת במקום שכתבנו H3 אנחנו יכולים לכתוב כל אלמנט לפי הסינטקס של jQuery. (לדוגמא: H3.niceFont יבחר את כל אלמנטי ה-H3 בעלי class ששמו 'niceFont').</p>
<p>וכמובן אנחנו צריכים להוסיף קוד שיפעיל את הסקריפט שלנו, בואו נראה איך יראה הHTML שלנו אחרי השינויים להצגת עברית:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;height:auto;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
...<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;js/cufon-yui.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;js/CufonRTL.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;js/BN_Traktor_400.font.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span><br />
$(function(){<br />
Cufon.replace('h3');<br />
CufonRTL.RTL('h3');<br />
});<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
...<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
...<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>אני פסקה עם פונט מיוחד שעובד גם בעברית.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h3</span>&gt;</span><br />
...<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></div></td></tr></tbody></table></div>
<p>שתי התוספות הראשונה הן קישור לקבצי ה-JS של jQuery והיפוך העברית (שורות 4 ו-6 בהתאמה). התוספת השלישית היא הפעלה של סקריפט ההיפוך (שורה 11) שימו לב שהיא מקבלת כפרמטר את אותה מחרוזת (בדוגמא שלנו H3) ש-cufon מקבל.</p>
<p>זהו זה, זה עובד!</p>
<p><strong>מה חשוב לזכור?</strong></p>
<p>למרות שפתרנו את בעיית העברית, הסקריפט לא יעבוד טוב עם מחרוזת מרובות שורות ולכן אני ממליץ להשתמש בסקריפט רק לכותרות. בנוסף שימוש בסקריפט על טקסטים גדולים יגרום לטעינת הדף להיות איטית יותר, אז תשתמשו בפונטים מיוחדים בכותרות והסקריפט יעבוד כמו שצריך.</p>
<p>דרך אגב, אם שמתם לב או לא כל הכותרות המשניות במאמר הזה הוחלפו באמצעות cufon.</p>
<p><script src="http://htm.co.il/lab/cufon/cufon-yui.js" type="text/javascript"></script><br />
 <script src="http://htm.co.il/lab/cufon/CufonRTL.js" type="text/javascript"></script><br />
<script src="http://htm.co.il/lab/cufon/BN_Traktor_400.font.js" type="text/javascript"></script><br />
 <script type="text/javascript">
     $(function(){
		Cufon.replace('h3');
		CufonRTL.RTL('h3');
	});
</script></p>
<h3>עוד באותו נושא:</h3><ul class="related_post"><li  class="relatedPost"><a href="http://www.htm.co.il/2010/04/28/%d7%a1%d7%99%d7%9b%d7%95%d7%9d-%d7%9e%d7%a4%d7%92%d7%a9-%d7%9e%d7%a4%d7%aa%d7%97%d7%99%d7%9d-%d7%9e%d7%a1-3-w3c-%d7%99%d7%a9%d7%a8%d7%90%d7%9c/" title="<!--:il-->סיכום מפגש מפתחים מס' 3 &#8211; W3C ישראל<!--:-->"><img src="http://htm.co.il/wp-content/post-images/1068.jpg" /><!--:il-->סיכום מפגש מפתחים מס' 3 &#8211; W3C ישראל<!--:--></a><div style="clear: both;"></div></li><li  class="relatedPost"><a href="http://www.htm.co.il/2010/04/08/%d7%9e%d7%a4%d7%92%d7%a9-3-%d7%91%d7%a1%d7%93%d7%a8%d7%aa-%d7%9e%d7%a4%d7%92%d7%a9%d7%99-%d7%a4%d7%95%d7%a8%d7%95%d7%9d-%d7%94%d7%9e%d7%a4%d7%aa%d7%97%d7%99%d7%9d-%d7%a9%d7%9c-%d7%94-w3c-%d7%91%d7%99/" title="<!--:il-->מפגש #3 בסדרת מפגשי פורום המפתחים של ה-W3C בישראל &#8211; עיצוב אתרים מבוסס CSS<!--:-->"><img src="http://htm.co.il/wp-content/post-images/1062.jpg" /><!--:il-->מפגש #3 בסדרת מפגשי פורום המפתחים של ה-W3C בישראל &#8211; עיצוב אתרים מבוסס CSS<!--:--></a><div style="clear: both;"></div></li></ul></div>]]></content:encoded>			<wfw:commentRss>http://www.htm.co.il/2009/09/20/%d7%a9%d7%99%d7%9e%d7%95%d7%a9-%d7%91%d7%a4%d7%95%d7%a0%d7%98%d7%99%d7%9d-%d7%91%d7%9c%d7%aa%d7%99-%d7%a8%d7%92%d7%99%d7%9c%d7%99%d7%9d-%d7%94%d7%a4%d7%a2%d7%9d-cufon/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>&#8235;תפריט עיני דג &#8211; jqDock&#8236;</title>		<link>http://www.htm.co.il/2009/09/13/%d7%aa%d7%a4%d7%a8%d7%99%d7%98-%d7%a2%d7%99%d7%a0%d7%99-%d7%93%d7%92-jqdock/</link>
		<comments>http://www.htm.co.il/2009/09/13/%d7%aa%d7%a4%d7%a8%d7%99%d7%98-%d7%a2%d7%99%d7%a0%d7%99-%d7%93%d7%92-jqdock/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 11:24:12 +0000</pubDate>
		<dc:creator>&#8235;אורן רוט&#8236;</dc:creator>				<category><![CDATA[עיצוב אתרים]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jqDock]]></category>
		<category><![CDATA[תפריט]]></category>

		<guid isPermaLink="false">http://www.htm.co.il/?p=341</guid>
		<description><![CDATA[&#8235;תפריט הוא אחד הדברים החשובים והמרכזיים באתר אינטרנט. שיוצרים תפריט לאתר צריך להתחשב הן בעיצובו והן בנוחות השימוש שלו לגולש.
ספריית ה-JS המדהימה jqDock מציעה פתרון פשוט ויפיפה, תפריט מונפש שעומד גם בדרישות SEO.&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>לאחרונה הוספתי לאתר שלי רשימת כפתורי שיתוף בסוף כל פוסט (אתם מוזמנים לראות למטה), כפתורים שאפשר באמצעותם לפרסם מודעות בפייסבוק, טוויטר, להדפיס ולשלוח את הפוסט במייל.<br />
עכשיו למה אני מספר לכם את זה? כי הוספתי גם אפקט ממש מגניב לכפתורים האלה &#8211; שעוברים עם העכבר על כל אייקון הוא גדל וכשמורידים את העכבר האייקון קטן חזרה לגודל המקורי.<br />
האפקט הזה מופעל באמצעות ספריית ה-javascript המוכרת <em>jquery </em>וספרייה javascript נוספת בשם: <strong>jqDock</strong>.</p>
<p>במדריך הבא אני אסביר לכם, כיצד אתם יוצרים את האפקט הזה על מנת ליצור תפריט מדהים וכן אני אספר לכם על האפשרויות ש-jqDock מציעה.</p>
<div id="DemoAndCodeBtns"><a href="#menu2"><span>&lt;</span>דוגמא<span>&gt;</span></a><a href="http://www.htm.co.il/lab/jqdock/jqdock.rar" target="_blank"><span>&lt;</span>קוד<span>&gt;</span></a></div>
<div>חשוב להבין את דרך הפעולה של jqDock. מה ש-jqDock עושה הוא דבר פשוט, היא מוסיפה אירוע של mouseOver לכל תמונה (בין אם היא קישור או לא קישור) בתוך ה-Div הרלוונטי, וכאשר מעבירים את העכבר על התמונה, מימדי התמונה גדלים וכן התמונה מתחלפת לתמונה גדולה יותר, וזאת בשביל למנוע פיקסול של התמונה. צפו בדוגמא:</div>
<div id="menu" style=padding-bottom:33px;padding-top:33px;"><a href="page.html"><img src="http://www.htm.co.il/wp-content/themes/emoms-legacy/images/meta-embelish.png" alt="http://www.htm.co.il/wp-content/themes/emoms-legacy/images/rss-button.png" /></a></div>
<p><script type="text/javascript"><!--
$(document).ready(function(){
  $('#menu').jqDock();
});
// --></script></p>
<div>כמובן שאנחנו בהמשך נשתמש באותה תמונה רק בגדלים שונים, אך הדוגמא שהוצגה כאן בהחלט מבהירה את פעולה של jqDock.</div>
<div>jqDock כמובן שומרת גם על יישור האלמנטים בתוך הDiv.</div>
<h3>איך גורמים לזה לפעול?</h3>
<p>ובכן,דבר ראשון יוצרים div עם ID יחודי ובתוכו מכניסים את התמונות שיכילו את תפריט ה-jqDock.</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'menu'</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'image1.gif'</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'image1.png'</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
...<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'page.html'</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'imageN.png'</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span><br />
...<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></div></td></tr></tbody></table></div>
<p>שימו לב שאפשר לשלב גם לינקים וגם תמונות פשוטות ללא לינקים כלל.</p>
<p>בואו נביט בקוד, אנחנו רואים שבאלמנט התמונה תחת המאפיין alt ישנו מחרוזת שמצביעה על תמונה, זהו קישור לתמונה הגדולה שתתחלף כאשר נעבור עם העכבר על האייקון. באלמנט התמונה השנייה לא מצויין מאפיין alt ולכן jqDock פשוט יגדיל את התמונה הקיימת.</p>
<p>כעת נעבור להוספת ספריות ה-JS (את הקוד הבא רצוי להוסיף בין תגיות הhead):</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'text/javascript'</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'jquery-1.2.3.min.js'</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'text/javascript'</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'jquery.jqDock.js'</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></div></td></tr></tbody></table></div>
<p>הקישור לספריות צריך להיות קישור למיקום האמיתי של הספריות, כלומר, לאן שהעלאתם אותם בשרת שלכם.</p>
<p>ולסיום הקוד שמאתחל את jqDock:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#menu'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">jqDock</span><span style="color: #009900;">&#40;</span>options<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>המילה <span style="color: #993366;">menu# </span>פונה לאלמנט ה-DIV שלנו, וכך הוא מבצע את האפקט על כל התמונות שה-Div מכיל. <span style="color: #993366;">options</span> הוא אופציונלי והוא בעצם אחראי לברור בין האפשרויות ש-jqDock מציעה, לבנתיים לא נוסיף אותו ונשאיר סוגריים ריקים. זהו התפריט מוכן.</p>
<div id="menu2" style="padding-bottom:33px;"><a href="#"><img src="http://www.htm.co.il/lab/jqdock/images/photos_sm.png" alt="http://www.htm.co.il/lab/jqdock/images/photos_big.png" /></a><a href="#"><img src="http://www.htm.co.il/lab/jqdock/images/balanceca_sm.png" alt="http://www.htm.co.il/lab/jqdock/images/balanceca_big.png" /></a><a href="#"><img src="http://www.htm.co.il/lab/jqdock/images/calculator_sm.png" alt="http://www.htm.co.il/lab/jqdock/images/calculator_big.png" /></a><a href="#"><img src="http://www.htm.co.il/lab/jqdock/images/installer_sm.png" alt="http://www.htm.co.il/lab/jqdock/images/installer_big.png" /></a><a href="#"><img src="http://www.htm.co.il/lab/jqdock/images/maps_sm.png" alt="http://www.htm.co.il/lab/jqdock/images/maps_big.png" /></a><a href="#"><img src="http://www.htm.co.il/lab/jqdock/images/safari_sm.png" alt="http://www.htm.co.il/lab/jqdock/images/safari_big.png" /></a><a href="#"><img src="http://www.htm.co.il/lab/jqdock/images/text_sm.png" alt="http://www.htm.co.il/lab/jqdock/images/text_big.png" /></a></div>
<p><script type="text/javascript"><!--
$(document).ready(function(){
  $('#menu2').jqDock();
});
// --></script></p>
<p>במאמר הבא אני אסביר לכם על האופציות ש-jqDock מציעה.</p>
<h3>עוד באותו נושא:</h3><ul class="related_post"><li  class="relatedPost"><a href="http://www.htm.co.il/2009/03/19/lightbox-%d7%94%d7%95%d7%a8%d7%90%d7%95%d7%aa-%d7%a9%d7%99%d7%9e%d7%95%d7%a9/" title="Lightwindow &#8211; הוראות שימוש (המדריך המלא)"><img src="http://htm.co.il/wp-content/post-images/210.jpg" />Lightwindow &#8211; הוראות שימוש (המדריך המלא)</a><div style="clear: both;"></div></li><li  class="relatedPost"><a href="http://www.htm.co.il/2009/02/22/lightbox-%d7%94%d7%93%d7%a8%d7%9a-%d7%9c%d7%94%d7%a6%d7%99%d7%92-%d7%aa%d7%9e%d7%95%d7%a0%d7%95%d7%aa-%d7%95%d7%a2%d7%95%d7%93/" title="LightBox &#8211; הדרך להצגת גלריית תמונות"><img src="http://htm.co.il/wp-content/post-images/171.jpg" />LightBox &#8211; הדרך להצגת גלריית תמונות</a><div style="clear: both;"></div></li></ul></div>]]></content:encoded>			<wfw:commentRss>http://www.htm.co.il/2009/09/13/%d7%aa%d7%a4%d7%a8%d7%99%d7%98-%d7%a2%d7%99%d7%a0%d7%99-%d7%93%d7%92-jqdock/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>&#8235;העלאת תמונה בלחיצה אחת fancyUpload&#8236;</title>		<link>http://www.htm.co.il/2009/09/09/%d7%94%d7%a2%d7%9c%d7%90%d7%aa-%d7%aa%d7%9e%d7%95%d7%a0%d7%94-%d7%91%d7%9c%d7%97%d7%99%d7%a6%d7%94-%d7%90%d7%97%d7%aa-fancyupload/</link>
		<comments>http://www.htm.co.il/2009/09/09/%d7%94%d7%a2%d7%9c%d7%90%d7%aa-%d7%aa%d7%9e%d7%95%d7%a0%d7%94-%d7%91%d7%9c%d7%97%d7%99%d7%a6%d7%94-%d7%90%d7%97%d7%aa-fancyupload/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 08:39:16 +0000</pubDate>
		<dc:creator>&#8235;אורן רוט&#8236;</dc:creator>				<category><![CDATA[בניית אתרים]]></category>
		<category><![CDATA[fancyUpload]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[העלאת קבצים]]></category>
		<category><![CDATA[קבצים]]></category>
		<category><![CDATA[תמונות]]></category>

		<guid isPermaLink="false">http://www.htm.co.il/?p=262</guid>
		<description><![CDATA[&#8235;אובייקט העלאת הקבצים file הוא אובייקט מיושן בעל יכולות מאוד מוגבלות. בואו לגלות כיצד להעלות כמה קבצים בו זמנית, לעקוב אחרי התקדמות העלאה ולסנן סוגי קבצים. כל זה באמצעות שימוש בכמה ספריות JS ואובייקט פלאש אחד.&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>חלק בלתי נפרד מעולם הטפסים הוא האובייקט input מסוג file. מטרתו של אובייקט זה הוא לעלות קבצים מצד הלקוח לצד השרת.<br />
למי שעדיין לא הבין על מה אני מדבר:</p>
<input type="file" />
<p>הבעיה באובייקט הזה שהוא מאוד מיושן והיכולות שלו מאוד מוגבלות.<br />
במדריך הבא אני אסביר לכם כיצד להחליף את אובייקט העלאת הקבצים באלמנט חכם יותר שמסוגל לעלות כמה קבצים בו זמנית ולתת אינפורמציה בזמן אמת להתקדמות ההעלאה.</p>
<div id="DemoAndCodeBtns"><a href="http://www.htm.co.il/lab/fancyUpload/new/build.html"><span>&lt;</span>דוגמא<span>&gt;</span></a><a href="http://www.htm.co.il/lab/fancyUpload/new/upload.rar"><span>&lt;</span>קוד<span>&gt;</span></a></div>
<p>כולנו משתמשים באובייקט העלאת הקבצים, אם זה בתור משתמשי קצה &#8211; בחשבון המייל שלנו כאשר אנחנו מצרפים קבצים, או בתור בוני אתרים &#8211; בתוך מערכות הניהול של האתרים שלנו.</p>
<p>עד היום כולנו השתמשנו באובייקט המיושן input-&gt;file מתוך הDOM. החסרונות העיקריים של אובייקט זה הם:</p>
<ul>
<li>אפשרות להעלאה אחת כל פעם</li>
<li>לא נותן אינדיקציה להתקדמות ההעלאה</li>
<li>אין אפשרות לסנן את סוגי הקבצים אותם אנחנו מעוניינים לקבל</li>
</ul>
<p>הפתרון שמוצע במאמר זה עולה על החסרונות של האובייקט ה-file המיושן ונותן תחליף שמשלב את ספריית הגאווה-סקריפט mootools ואובייקט פלאש.</p>
<h3>פתרון אלגנטי</h3>
<p style="text-align: right;">
<p style="text-align: right;">הפתרון נלקח מתוך האתר <a href="http://digitarald.de/project/fancyupload/" target="_blank"><span dir="rtl"><em>digitarald.de</em></span></a><span dir="rtl"><em> </em>בעצם מה שעושים הוא לקחת את הטופס הרגיל עם אובייקט הישן ולהחליף אותו בפלאש, עם שילוב של כמה סקריפטים בגאווה-סקריפט &#8211; זה עושה את העבודה.</span></p>
<p style="text-align: right;"><span dir="rtl">אני אתן כאן דוגמא למערכת שמעלה תמונות אבל אתם יכולים לקחת את הקוד ולהתאים אותו לכל מטרה.<br />
</span></p>
<p style="text-align: right;"><span dir="rtl">על מנת להתחיל לעבוד הורידו את קובץ ה-rar מתוך הכפתור &quot;קוד&quot; שנמצא בראש המאמר (כמובן שאתם יכולים לראות את התוצאה הסופית בכפתור &quot;דוגמא&quot;). </span></p>
<p style="text-align: right;"><span dir="rtl">חלצו את הקבצים מקובץ ה-rar ותקבלו 4 תיקיות וקובץ html אחד.</span></p>
<p style="text-align: right;"><strong><span dir="rtl">התיקיות:</span></strong></p>
<ul>
<li><span dir="rtl"><em>assets </em>- תקיית התמונות </span></li>
<li><span dir="rtl"><em>css</em> &#8211; מכיל את קובץ style.css</span></li>
<li><span dir="rtl"><em>server</em> &#8211; מכיל את קוד הPHP וקובץ Log ששומר בתוכו לוג לכל העלאה</span></li>
<li><span dir="rtl"><em>source</em> &#8211; מכיל את כל קבצי הJS ובנוסף קובץ פלאש שעתיד להחליף את אובייקט ה-file</span></li>
</ul>
<p>טוב עכשיו אחרי שעשינו סקירה מהירה על מה יש לנו נעבור לתכלס</p>
<h3>מה עושים?</h3>
<p>1. מעלים את כל הקבצים לשרת</p>
<p>2. נותנים הרשאת כתיבה (666) לקובץ הלוג (server-&gt;script.log)</p>
<p>3. עורכים את קובץ script.php מתיקיית server</p>
<p>טוב שני שלבים הראשונים ברורים ולכן נעבור לשלב השלישי-</p>
<p>פתחתם את קובץ script.php בתוכנת העריכה האהובה עליכם (אני אוהב את ++notepad, קלה ונוחה), מצאתם את השורות האלה (מתחיל בשורה 115):</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$error</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">move_uploaded_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Filedata'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tmp_name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'../images/'</span> <span style="color: #339933;">.</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Filedata'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$error</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'בעיה בהעלאה לשרת'</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>מה שבעצם הקוד הזה עושה הוא, לאחר כל הבדיקות הוא רואה שאין error ואז הוא משתמש בפונקצייה <em>move_uploaded_file</em> של PHP.</p>
<p>הפונקציה של php מקבלת שתי פרמטרים. הראשון, מיקום הקובץ הזמני (לאחר שעושים העלאה לקובץ באופן אוטומטי הוא ממומקם בנתיב זמני), אין טעם לשנות אותו. הפרמטר השני, שאותו <strong>אתם צריכים לערוך, </strong>הוא לאן הקובץ יועתק בשרת שלכם. אני בחרתי את תיקיית images שנמצאת בתיקייה הראשית שלי. כמובן שאני משרשר לפרמטר השני את שם הקובץ וכך הוא ישמר בתיקייה images עם שם הקובץ המקורי.</p>
<div class="warning">שימו לב! המיקום שאתם נותנים בפרמטר השני הוא מיקום יחסי לקובץ הPHP! ולא לקובץ הhtml.</div>
<p>זהו זה, עכשיו מעלה הקבצים המשכולל שלכם עובד. אתם מוזמנים לשחק עוד בקובץ script.php גום בקובץ script.js וכך לשנות את ההגדרות לצרכים שלכם.</p>
<h3>עוד באותו נושא:</h3><ul class="related_post"><li  class="relatedPost"><a href="http://www.htm.co.il/2009/03/19/lightbox-%d7%94%d7%95%d7%a8%d7%90%d7%95%d7%aa-%d7%a9%d7%99%d7%9e%d7%95%d7%a9/" title="Lightwindow &#8211; הוראות שימוש (המדריך המלא)"><img src="http://htm.co.il/wp-content/post-images/210.jpg" />Lightwindow &#8211; הוראות שימוש (המדריך המלא)</a><div style="clear: both;"></div></li><li  class="relatedPost"><a href="http://www.htm.co.il/2009/02/22/lightbox-%d7%94%d7%93%d7%a8%d7%9a-%d7%9c%d7%94%d7%a6%d7%99%d7%92-%d7%aa%d7%9e%d7%95%d7%a0%d7%95%d7%aa-%d7%95%d7%a2%d7%95%d7%93/" title="LightBox &#8211; הדרך להצגת גלריית תמונות"><img src="http://htm.co.il/wp-content/post-images/171.jpg" />LightBox &#8211; הדרך להצגת גלריית תמונות</a><div style="clear: both;"></div></li></ul></div>]]></content:encoded>			<wfw:commentRss>http://www.htm.co.il/2009/09/09/%d7%94%d7%a2%d7%9c%d7%90%d7%aa-%d7%aa%d7%9e%d7%95%d7%a0%d7%94-%d7%91%d7%9c%d7%97%d7%99%d7%a6%d7%94-%d7%90%d7%97%d7%aa-fancyupload/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>&#8235;Lightwindow &#8211; הוראות שימוש (המדריך המלא)&#8236;</title>		<link>http://www.htm.co.il/2009/03/19/lightbox-%d7%94%d7%95%d7%a8%d7%90%d7%95%d7%aa-%d7%a9%d7%99%d7%9e%d7%95%d7%a9/</link>
		<comments>http://www.htm.co.il/2009/03/19/lightbox-%d7%94%d7%95%d7%a8%d7%90%d7%95%d7%aa-%d7%a9%d7%99%d7%9e%d7%95%d7%a9/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 12:29:09 +0000</pubDate>
		<dc:creator>&#8235;אורן רוט&#8236;</dc:creator>				<category><![CDATA[עיצוב אתרים]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[Lightwindow]]></category>
		<category><![CDATA[גלריה]]></category>
		<category><![CDATA[תמונות]]></category>

		<guid isPermaLink="false">http://www.htm.co.il/?p=210</guid>
		<description><![CDATA[&#8235;רוצים לדעת איך ליצור גלריה יפה ונקייה ב-JavaScript ועדיין לשמור על קוד אתרכם ידידותי למנועי החיפוש? במאמר זה אני אסביר איך לבנות גלריה בטכנולוגיית lightwindow, בשמונה שלבים פשוטים.&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p dir="rtl"><a href="http://www.htm.co.il/2009/02/22/lightbox-%d7%94%d7%93%d7%a8%d7%9a-%d7%9c%d7%94%d7%a6%d7%99%d7%92-%d7%aa%d7%9e%d7%95%d7%a0%d7%95%d7%aa-%d7%95%d7%a2%d7%95%d7%93/">במאמר הקודם</a> הסברתי לכם על טכנלוגיית lightbox, על היתרונות שלה ואיך הטכנולוגיה עובדת. במאמר זה אני אגש לעניין ואסביר לכם בשמונה שלבים כיצד אתם מוסיפים גם לאתרכם מערכת גלריה שמבוססת על JavaScript ובכל זאת ידידותית למנועי החיפוש.</p>
<div id="DemoAndCodeBtns"><a href="http://www.htm.co.il/lab/lightwindow" target="_blank"><span>&lt;</span>דוגמא<span>&gt;</span></a><a href="http://www.htm.co.il/lab/lightwindow_he.rar" target="_blank"><span>&lt;</span>קוד<span>&gt;</span></a></div>
<p dir="rtl">כפי שציינתי במאמר הקודם ל-lightbox שכפולים רבים. במאמר זה אציג לכם את טכנולוגיית lightbox באמצעות שכפול שאני אוהב והוא ה-lightwindow. אני אוהב את ה-lightwindow במיוחד מכיוון והוא מהיר, מכיל הרבה פונקציות להצגת גלריה ועוד תכונות נוספות שעליהם אני לא ארחיב במאמר זה (פתיחת חלונות iframe, פלאש,PDF ועוד רבים).</p>
<h3 dir="rtl">חלק 1 &#8211; התקנה</h3>
<p dir="rtl">1.      הורידו את קבצי ה- lightwindow <a href="http://www.htm.co.il/lab/lightwindow_he.rar">מכאן</a>.</p>
<p dir="rtl">2.      העלו את שלושת התיקיות (css,javascript,images) ל-root של אתרכם.</p>
<p dir="rtl">3.      טכנולוגיית lightwindow משתמשת בספריות JavaScript למימוש אפקטי האנימציה(Framework  ו-Scriptaculous). יש להוסיף את שלושת קבצי ה-JS הבאים לתוך של האתר שלכם, בין תגיות ה-head (לפי הסדר הבא):</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;javascript/prototype.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;javascript/scriptaculous.js?load=effects&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;javascript/lightwindow.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></div></td></tr></tbody></table></div>
<p dir="rtl">4.      יש להוסיף כמו כן את קובץ הCSS המצורף (לאותו מקום):</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;stylesheet&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;css/lightwindow.css&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;screen&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></div></td></tr></tbody></table></div>
<h3 dir="rtl">חלק 2 &#8211; הפעלה</h3>
<p dir="rtl">1.      הוסיפו תכונת &quot;class=&quot;lightwindow לכל קישור על מנת להפעיל את ה-lightwindow.<br />
לדוגמא:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;images1.jpg&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;lightwindow&quot;</span> caption<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;תמונה מדליקה&quot;</span>&gt;&lt;img...<span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></div></td></tr></tbody></table></div>
<p dir="rtl">2.      הוסיפו תכונת caption על מנת להוסיף כותרת לתמונתכם בחלון ה-lightwindow. <em>(אופציונלי)</em></p>
<p dir="rtl">3.      הוסיפו תכונת author על מנת להוסיף זכויות יוצרים לתמונתכם בחלון ה-lightwindow. <em>(אופציונלי)</em></p>
<p dir="rtl">4.      על מנת ליצור קשר בין תמונות וליצור גלריה אחידה (ניתן יהיה להעביר קדימה אחורה בין התמונות), יש להוסיף לכל התמונות ששייכים לאותה גלריה תכונת &quot;[rel=&quot;<em>ALBUM</em>[<em>GALLERY</em>.</p>
<p dir="rtl">*במקום המילים ALBUM וGALLERY תתנו שמות זהים לכל התמונות שאתם רוצים שיהיו שייכים לאותה קבוצה. במידה ויש לכם כמה גלריות בעמוד יחיד lightwindow מוסיף כפתור בתוך חלון ה-lightwindow שמקשר בין כל הגלריות בדף &#8211; נסו ותראו.</p>
<p dir="rtl">לדוגמא הקוד:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;037.jpg&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;lightwindow&quot;</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;גלריה[תמונות לא קשורות]&quot;</span> caption<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;כאן אפשר לראות גם גיטרה חשמלית וגם אף של בתאדם!&quot;</span> author<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;מר. כהן&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;037-150x150.jpg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;אף וגיטרה חשמלית&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;250.jpg&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;lightwindow&quot;</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;גלריה[תמונות לא קשורות]&quot;</span> caption<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;צילום שהייתי אצל הרופא שלי בדיוק שסגרו לי פה של דב על היד...&quot;</span> author<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;צלם מוכשר&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot; 250-150x150.jpg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;יד שבורה עם סמן עכבר&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;dsc00573.jpg&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;lightwindow&quot;</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;גלריה[תמונות לא קשורות]&quot;</span> &gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;גבר וגברת&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;dsc00573-150x150.jpg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;גבר וגברת&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;dsc01017.jpg&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;lightwindow&quot;</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;גלריה[תמונות לא קשורות]&quot;</span> &gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot; dsc01017-150x150.jpg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;בחור מאוד נחמד&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></div></td></tr></tbody></table></div>
<p>ולתוצאה:</p>
<div id="DemoAndCodeBtns"><a href="http://www.htm.co.il/lab/lightwindow" target="_blank"><span>&lt;</span>תוצאה<span>&gt;</span></a></div>
<h3>עוד באותו נושא:</h3><ul class="related_post"><li  class="relatedPost"><a href="http://www.htm.co.il/2009/02/22/lightbox-%d7%94%d7%93%d7%a8%d7%9a-%d7%9c%d7%94%d7%a6%d7%99%d7%92-%d7%aa%d7%9e%d7%95%d7%a0%d7%95%d7%aa-%d7%95%d7%a2%d7%95%d7%93/" title="LightBox &#8211; הדרך להצגת גלריית תמונות"><img src="http://htm.co.il/wp-content/post-images/171.jpg" />LightBox &#8211; הדרך להצגת גלריית תמונות</a><div style="clear: both;"></div></li><li  class="relatedPost"><a href="http://www.htm.co.il/2010/01/17/%d7%92%d7%9c%d7%a8%d7%99%d7%99%d7%aa-%d7%a4%d7%9c%d7%90%d7%a9-%d7%a2%d7%9c-%d7%91%d7%a1%d7%99%d7%a1-xml-%d7%9e%d7%aa%d7%a0%d7%94/" title="גלריית פלאש על בסיס XML מתנה!"><img src="http://htm.co.il/wp-content/post-images/988.jpg" />גלריית פלאש על בסיס XML מתנה!</a><div style="clear: both;"></div></li></ul></div>]]></content:encoded>			<wfw:commentRss>http://www.htm.co.il/2009/03/19/lightbox-%d7%94%d7%95%d7%a8%d7%90%d7%95%d7%aa-%d7%a9%d7%99%d7%9e%d7%95%d7%a9/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>&#8235;LightBox &#8211; הדרך להצגת גלריית תמונות&#8236;</title>		<link>http://www.htm.co.il/2009/02/22/lightbox-%d7%94%d7%93%d7%a8%d7%9a-%d7%9c%d7%94%d7%a6%d7%99%d7%92-%d7%aa%d7%9e%d7%95%d7%a0%d7%95%d7%aa-%d7%95%d7%a2%d7%95%d7%93/</link>
		<comments>http://www.htm.co.il/2009/02/22/lightbox-%d7%94%d7%93%d7%a8%d7%9a-%d7%9c%d7%94%d7%a6%d7%99%d7%92-%d7%aa%d7%9e%d7%95%d7%a0%d7%95%d7%aa-%d7%95%d7%a2%d7%95%d7%93/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 09:59:55 +0000</pubDate>
		<dc:creator>&#8235;אורן רוט&#8236;</dc:creator>				<category><![CDATA[עיצוב אתרים]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[גלריה]]></category>
		<category><![CDATA[תמונות]]></category>

		<guid isPermaLink="false">http://www.htm.co.il/?p=171</guid>
		<description><![CDATA[&#8235;כולנו מכירים מימושים שונים להצגת גלריה של תמונות. לאחרונה נתקלתי בטכנולגיית lightbox להצגת תמונות בצורה קלה, יפה והכי חשוב ידידותית למנועי החיפוש. במאמר זה אסקור את הטכנולוגיה ואת דרך הפעולה שלה.&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>בתור בונה אתרים, בניתי גלריות רבות לאתרים שלי וללקוחות שלי. ישנן טכניקות רבות לבניית גלרית תמונות: גלריות משוגעות בפלאש,גלריות שנטענות תוך כדי צפייה עם שילוב של AJAX וגלריות סנטדרטיות בHTML.  עד שנתקלתי בטכנולוגית lightbox, תמיד הייתי צריך להתפשר בין קוד תקין ותאימות מלאה לדפדפנים לבין גלריה מעוצבת בצורה היפה ביותר. בניתי גלריות בFLASH, מערכות דינמיות של גלריות תמונות בPHP אבל הטכניקה שמציעה lightbox נותנת את הפתרון הטוב ביותר, תשאלו למה? התשובה במילה אחת &#8211; פשטות.</p>
<p>במאמר זה אני אתן רקע על טכניקת lightbox להצגת תמונות, ו<a href="http://www.htm.co.il/2009/03/19/lightbox-%d7%94%d7%95%d7%a8%d7%90%d7%95%d7%aa-%d7%a9%d7%99%d7%9e%d7%95%d7%a9/">במאמר הבא</a> אני אסביר את הצד הטכני שבשימוש ב-lightbox. אז אם אתם כבר יודעים מה זה lightbox עברו למאמר הבא למימוש lightbox להצגת גלריית תמונות. אם לא, המשיכו לקרוא.</p>
<h3>מה זה lightbox</h3>
<p>lightbox והגרסה החדשה, lightbox2 היא תוכנת JavaScript שמאפשרת להציג תמונות גדולות בלי לטעון את כל הדף מחדש (באותו עמוד) בצורה אלגנטית. עיקר השימוש של הקוד הוא להצגת גלריות תמונות. בעקבות ההצלחה של lightbox אצל מפתחי האתרים, נוצרו שכפולים רבים של הקוד על מנת להציג גם טקסטים, טפסים, סרטונים ובעצם כל מה שאתם מכירים שקיים באינטרנט, במין חלונית מעוצבת בטכנולוגיית JS (אפילו <a class="lightwindow" href="http://www.google.co.il/">אתר גוגל</a>). אתם בטח ראיתם דוגמאות רבות לשימוש ב-lightbox באתרים שונים גם אם לא הייתם מודעים לכך שמדובר בטכנולוגיה זו. לדוגמא, האתר המופרסם פייסבוק משתמש ב-<abbr title="שיכפול של lightbox שמשלב AJAX">thickbox</abbr> לשימושים שונים (בינהם: אישור חבר, הודעה על אי-הרשאה ועוד), ואף במערכת הניהול של האתר הזה (wordpress) יש שילוב של thickbox כאשר מעוניינים להעלות מדיה לאתר.</p>
<p>במאמר הבא אני ארחיב ואספר על שימושים נוספים בטכנולוגיה זו. וכעת חזרה לנושא המאמר, גלריית תמונות. כמו בכל גלריה תמונות סטנדרטית, הגלריה תהיה בנויה מתמונות  מוקטנות של כל תמונה מקורית (thumbnails) ולחיצה על תמונה קטנה תציג את אותה תמונה בגודל המקורי. ישנם שתי סיבות לתצורה הזו של הגלריה. אחת, עיצוב גרפי נוח ונכון למשתמש ושנית, חסכון בזמן טעינת העמוד &#8211; כך המשתמש יכול לצפות בדוגמית מכל תמונה והדפדפן יטען את התמונות בגודל המקורי רק לפי בקשת המשתמש. טכניקת lightbox עובדת על התצורה הבסיסית הזו של הגלריה ובנוסף היא משלבת אפקטי JavaScript ו-CSS שהופכים את התצורה הפשוטה של הגלריה למדהימה.</p>
<h3>אז איך זה עובד?</h3>
<p>כאשר ה-lightbox פעיל בעמוד אינטרנט, לחיצה על תמונה מוקטנת בגלריה פותחת את התמונה המקורית בחלון lightbox שגדל באפקט אנימציה מיוחד, לפי גודל התמונה המקורית. כאשר מעוניינים להחיל אפקט lightbox על תמונה צריך להוסיף לאלמנט התמונה תכונת rel. הסקריפט עובר על כל אלמנטי התמונות (&lt;img&gt;) שתחומים באלמנטי קישור (&lt;a&gt;) ומפעיל עליהם את אפקט ה-lightbox. כמו כן ניתן להוסיף כותרת לכל תמונה וכן לקשר בין קבוצת תמונות.</p>
<p>דוגמא לקוד שמתווסף לתמונה:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;כותרת של התמונה&quot;</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;lightbox&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;original_picture.jpg&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;thumb_picture.jpg&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></div></td></tr></tbody></table></div>
<p>זה הכל, עד כדי כך פשוט, נקי ויותר חשוב מהכל &#8211; ידידותי למנועי החיפוש.</p>
<h3>חסרון</h3>
<p>אני אפתח את הפסקה הזו דווקא בעובדה ש-lightbox הינה אחת הטכנולוגיות היפות ביותר שנתקלתי בהן ברשת, הן מבחינת המימוש הנוח, הן בהתאמה המלאה לכל הדפדפנים והן בידידותיות למנועי החיפוש. אך אין לשכוח את החסרון היחידי (שגם עליו קשה להצביע כחסרון של ממש). lightbox מבוסס על טכנולוגיית JavaScript, ובמידה והJS מנוטרל אצל הגולש כל אפקט ה-lightbox יעלם &#8211; אך גם כאן לא נתפוס את ה-lightbox עם המכנסיים למטה, מכיוון וכל הקוד בנוי מ-HTML תקין התמונה המקורית תפתח למרות זאת (פשוט בדפדפן כרגיל).</p>
<p>כעת לאחר שסקרתי את הטכנולוגיה להצגת תמונות דלגו ל<a href="http://www.htm.co.il/2009/03/19/lightbox-%d7%94%d7%95%d7%a8%d7%90%d7%95%d7%aa-%d7%a9%d7%99%d7%9e%d7%95%d7%a9/">מאמר הבא שלי</a> בו אני מסביר כיצד לממש (טכנית) את גלריית התמונות שלכם במאצעות lightbox.</p>
<h3>עוד באותו נושא:</h3><ul class="related_post"><li  class="relatedPost"><a href="http://www.htm.co.il/2009/03/19/lightbox-%d7%94%d7%95%d7%a8%d7%90%d7%95%d7%aa-%d7%a9%d7%99%d7%9e%d7%95%d7%a9/" title="Lightwindow &#8211; הוראות שימוש (המדריך המלא)"><img src="http://htm.co.il/wp-content/post-images/210.jpg" />Lightwindow &#8211; הוראות שימוש (המדריך המלא)</a><div style="clear: both;"></div></li><li  class="relatedPost"><a href="http://www.htm.co.il/2010/01/17/%d7%92%d7%9c%d7%a8%d7%99%d7%99%d7%aa-%d7%a4%d7%9c%d7%90%d7%a9-%d7%a2%d7%9c-%d7%91%d7%a1%d7%99%d7%a1-xml-%d7%9e%d7%aa%d7%a0%d7%94/" title="גלריית פלאש על בסיס XML מתנה!"><img src="http://htm.co.il/wp-content/post-images/988.jpg" />גלריית פלאש על בסיס XML מתנה!</a><div style="clear: both;"></div></li></ul></div>]]></content:encoded>			<wfw:commentRss>http://www.htm.co.il/2009/02/22/lightbox-%d7%94%d7%93%d7%a8%d7%9a-%d7%9c%d7%94%d7%a6%d7%99%d7%92-%d7%aa%d7%9e%d7%95%d7%a0%d7%95%d7%aa-%d7%95%d7%a2%d7%95%d7%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>



