PDA

View Full Version : سوال در مورد CDATA



Ahoora_Mazda
جمعه 27 دی 1387, 02:06 صبح
درود
من یک سوال برام پیش امده لطفا راهنمایی کنید.
تا انجا که من فهمیدم در XHTML هر چیزی که درون <!CDATA[[ قرار بگیرد ، توسط مرور گر تفسیر نمیشود، اما در بررسی سورس بسیاری از سایت ها این عبارت وجود دارد و اغلب یک یا چند تابع جاواسکریپت را درون خود جا داده است مانند زیر :



<script type="text/javascript">
//<![CDATA[
shImgDir = 'http://www.html-advisor.com/wp-content/plugins/shutter-reloaded/menu/';
shImageCount = true;
shTextBtns = false;
shL10n = ['Previous','Next','Close','Full Size','Fit to Screen','Image','of','Loading...'];
shutterOnload = function(){shutterReloaded.Init('sh');};
//]]>
</script>



خب وقتی قرار نیست تفسیر بشه چرا نوشته بشه ؟!
چرا در تگ <--! > قرار نمیگیره ؟!
آیا اسکریپتی که درون CDATA قرار دارد اجرا می شود ؟!
کلا فلسفه این CDATA درون اسناد XHTML چیست

Chabok
جمعه 27 دی 1387, 12:24 عصر
سلام
خیر . توسط XML parser تفسیر نمی شود . نه اینکه Commnet بشه

The term CDATA is used about text data that should not be parsed by the XML parser.
Characters like "<" and "&" are illegal in XML elements.
"<" will generate an error because the parser interprets it as the start of a new element.
"&" will generate an error because the parser interprets it as the start of an character entity.
Some text, like JavaScript code, contains a lot of "<" or "&" characters. To avoid errors script code can be defined as CDATA.
Everything inside a CDATA section is ignored by the parser.


Notes on CDATA sections:
A CDATA section cannot contain the string "]]>". Nested CDATA sections are not allowed.
The "]]>" that marks the end of the CDATA section cannot contain spaces or line breaks.
خلاصه اینکه برای جلوگیری از خطا ، برای کدهایی که شامل کارکترهایی مثل > & می باشند استفاده می شود .

چون > رو به عنوان شروع تگ و & رو به عنوان شروع دستوری مثل &nbsp; تلقی میکنه و برای جلوگیری از این کار نوشته میشه .

http://en.wikipedia.org/wiki/CDATA

موفق باشید . خدانگهدار